我有一些代码可以提供我需要的东西,但我需要一些帮助来将它们组合在一起。
我有:
create table #test ( job int, dateL date)
insert into #test values
(1, '2022-04-01'),
(2, '2022-04-02'),
(3, '2022-04-12'),
(4, '2022-04-27'),
(5, '2022-05-01')
declare
@startdate date = '2022-04-01',
@enddate date = '2022-04-30'
为此,我需要查看名为job的设置周期的哪一周出现,但我还需要找到每周的开始日期。所以我有这样做的cte,然后是找到工作的代码
;with cte as
(
select @startDate StartDate
union all
select dateadd(ww, 1, StartDate)
from cte
where dateadd(ww, 1, StartDate)<= @endDate
)
SELECT job,dateL,
(
SELECT CASE
WHEN dateL BETWEEN @startdate AND @enddate THEN DATEDIFF(wk, @startdate, dateL)
ELSE -1
END
)
AS WeekNumber
from #test
所以cte显示了一周中的每一天:
StartDate
2022-04-01
2022-04-08
2022-04-15
2022-04-22
2022-04-29
并选择shows
job dateL weeknumber
1 2022-04-01 1
2 2022-04-02 1
3 2022-04-12 2
4 2022-04-27 4
5 2022-05-01 -1
我怎样才能把它们联合起来,这样就有了第四列,显示了周数,这周的开始?
谢谢