連続する日付範囲をグループ化して、各範囲の最小日付と最大日付を表示しようとしています。これまでのところ、次のようなソリューションを使用してきました: http://www.sqlservercentral.com/articles/T-SQL/71550/ただし、SQL 2000 を使用しているため、いくつかの変更を加える必要がありました。これまでの私の手順は次のとおりです。
create table #tmp
(
date smalldatetime,
rownum int identity
)
insert into #tmp
select distinct date from testDates order by date
select
min(date) as dateRangeStart,
max(date) as dateRangeEnd,
count(*) as dates,
dateadd(dd,-1*rownum, date) as GroupID
from #tmp
group by dateadd(dd,-1*rownum, date)
drop table #tmp
週末という1つの問題を除いて、私が望むとおりに機能します。私のデータ セットには週末の日付のレコードがありません。つまり、見つかったグループは最大で 5 日です。たとえば、以下の結果では、最後の 3 つのグループが 10/6 の dateRangeStart と 10/20 の dateRangeEnd を持つ単一のレコードとして表示されるようにします。
休憩が週末だけの場合、日付範囲の休憩を無視するように設定する方法はありますか?
助けてくれてありがとう。