Мне нужен способ подсчитать, сколько разных недель находятся между двумя датами с разными годами
Мне удалось сделать что-то подобное, результат здесь хороший, потому что я использую группу по дате (год)) поэтому если существует неделя № 20 в 2018 году и неделя № 20 в 2019 году, мне нужно сосчитать их обоих.
with c as (
select DISTINCT DATEPART(WEEK, DATEADD(DAY,-1,[insertDate])) 'Weeks'
,datepart(year,[insertDate])'x '
from [Table]
where [insertDate] between '2018-01-01'and '2019-08-01'
group by datepart(year,[insertDate]),DATEPART(WEEK,
DATEADD(DAY,-1,[insertDate]))
)
select count(c.weeks) from c
Запрос должен работать для каждого интервала дат, например, если у меня естьинтервал 2017-07-20: 2019-08-26, логика должна выглядеть примерно так:
count distinct datepart (week,x_insertDate) for year 2017 +
count distinct datepart (week,x_insertDate) for year 2018 +
count distinct datepart (week,x_insertDate) for year 2019
и возвращать в качестве результата только сумму.