1

2 つの日付フィールド (以下の例では日付 1 と日付 3) を持つテーブルがあります。また、すべての休日を一覧表示する Holiday テーブルもあります。2 つの日付値の間の休日の数をカウントできる 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/10/1 2
4

2 に答える 2

1

このようなもの:

SELECT count (holidays.date) AS holiday_count
FROM holidays, table
WHERE holidays.date BETWEEN table.date_1 AND table.date_2
于 2012-10-09T15:55:17.510 に答える
1

次のようにする必要があります。

select date1, date2, t.total
from datestable, (select count(*) as total 
                  from holidaystable 
                  inner join datestable 
                  on holidaydate between date1 and date2) t;
于 2012-10-09T16:17:52.730 に答える