Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL计算表中两个日期之间的假期数_Sql_Tsql - Fatal编程技术网

使用SQL计算表中两个日期之间的假期数

使用SQL计算表中两个日期之间的假期数,sql,tsql,Sql,Tsql,我有一个表,它有两个日期字段(下例中的日期1和日期3)。我还有一个假日表,列出了所有的假日。我希望在SQL查询中找到一种方法,能够计算两个日期值之间的假期数。有什么想法吗 示例表: Date 1 Date 2 5/1/2012 5/4/2012 8/31/2012 9/25/2012 12/23/2011 12/27/2011 Holiday Date 12/25/2011 1/1/2012 7/4/2012 9/3/2012 Date 1

我有一个表,它有两个日期字段(下例中的日期1和日期3)。我还有一个假日表,列出了所有的假日。我希望在SQL查询中找到一种方法,能够计算两个日期值之间的假期数。有什么想法吗

示例表:

Date 1 Date 2 5/1/2012 5/4/2012 8/31/2012 9/25/2012 12/23/2011 12/27/2011 Holiday Date 12/25/2011 1/1/2012 7/4/2012 9/3/2012 Date 1 Date 2 Holidays 5/1/2012 5/4/2012 0 8/31/2012 9/25/2012 1 12/23/2011 1/10/2012 2 日期1日期2 5/1/2012 5/4/2012 8/31/2012 9/25/2012 12/23/2011 12/27/2011 日期维度表示例:

Date 1 Date 2 5/1/2012 5/4/2012 8/31/2012 9/25/2012 12/23/2011 12/27/2011 Holiday Date 12/25/2011 1/1/2012 7/4/2012 9/3/2012 Date 1 Date 2 Holidays 5/1/2012 5/4/2012 0 8/31/2012 9/25/2012 1 12/23/2011 1/10/2012 2 假日日期 12/25/2011 1/1/2012 7/4/2012 9/3/2012 理想输出:

Date 1 Date 2 5/1/2012 5/4/2012 8/31/2012 9/25/2012 12/23/2011 12/27/2011 Holiday Date 12/25/2011 1/1/2012 7/4/2012 9/3/2012 Date 1 Date 2 Holidays 5/1/2012 5/4/2012 0 8/31/2012 9/25/2012 1 12/23/2011 1/10/2012 2 日期1日期2假期 5/1/2012 5/4/2012 0 8/31/2012 9/25/2012 1 2011年12月23日2012年10月1日

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

应采取以下措施:

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

这太完美了。非常感谢你!