特定の年の開始日と終了日のテーブルを作成する SQL コードを次に示します。
問題のすべての年についてこのテーブルを作成する場合、残りは JOIN ステートメントを使用して実行する必要があります
-- Create weekrange table
Create table Weekrange
(YearNo INT,
WeekNo INT,
StartDay DATETIME,
EndDay DATETIME)
-- Populate first row
insert into WeekRange
select 2013,1, DateAdd(d,-DATEPART(dw,'1/1/2013'),'1/1/2013')+1 as FirstDay,null -- Compute first day
update Weekrange set EndDay = DATEADD(D,6,StartDay) -- Determine last day
-- Add next 52 rows
declare @id INT
set @id=2
while @id <=53
begin
insert into Weekrange (YearNo,WeekNo) values (2013,@id)
set @id=@id+1
update Weekrange
set StartDay = DATEADD(D,1,xx.EndDay),
EndDay = DATEADD(D,7,xx.EndDay)
from
(select * from WeekRange ) xx
where xx.weekno=weekrange.WeekNo-1
end
select * from Weekrange