Как посчитать все отдельные даты (недели) между 2 датами разных лет - PullRequest
0 голосов
/ 20 июня 2019

Мне нужен способ подсчитать, сколько разных недель находятся между двумя датами с разными годами

Мне удалось сделать что-то подобное, результат здесь хороший, потому что я использую группу по дате (год)) поэтому если существует неделя № 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 

и возвращать в качестве результата только сумму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...