我有一个包含两个日期字段的表(下面的示例中为日期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
答案 0 :(得分:1)
这样的事情:
SELECT count (holidays.date) AS holiday_count
FROM holidays, table
WHERE holidays.date BETWEEN table.date_1 AND table.date_2
答案 1 :(得分:1)
以下应该这样做:
select date1, date2, t.total
from datestable, (select count(*) as total
from holidaystable
inner join datestable
on holidaydate between date1 and date2) t;