【问题标题】:Calculating number of holidays between two dates in table using SQL使用SQL计算表中两个日期之间的假期数
【发布时间】:2012-10-10 00:17:52
【问题描述】:

我有一个包含两个日期字段的表格(下面的示例中的日期 1 和日期 3)。我还有一张列出所有假期的假期表。我想在 SQL 查询中找到一种方法来计算两个日期值之间的假期数。有什么想法吗?

示例表:

日期 1 日期 2
2012 年 5 月 1 日 2012 年 5 月 4 日
2012 年 8 月 31 日 2012 年 9 月 25 日
2011 年 12 月 23 日 2011 年 12 月 27 日

日期维度表示例:

节假日

2011 年 12 月 25 日
2012 年 1 月 1 日
2012 年 7 月 4 日
2012 年 9 月 3 日 

理想输出:

日期 1 日期 2 假期
2012 年 5 月 1 日 2012 年 5 月 4 日 0
2012 年 8 月 31 日 2012 年 9 月 25 日 1
2011 年 12 月 23 日 2012 年 1 月 10 日 2

【问题讨论】:

    标签: sql tsql


    【解决方案1】:

    类似这样的:

    SELECT count (holidays.date) AS holiday_count
    FROM holidays, table
    WHERE holidays.date BETWEEN table.date_1 AND table.date_2
    

    【讨论】:

      【解决方案2】:

      以下应该这样做:

      select date1, date2, t.total
      from datestable, (select count(*) as total 
                        from holidaystable 
                        inner join datestable 
                        on holidaydate between date1 and date2) t;
      

      【讨论】:

      • 这是完美的。非常感谢!
      猜你喜欢
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多