T- SQL - добавление дополнительных значений даты в таблицу на все строки - PullRequest
0 голосов
/ 31 марта 2020

У меня есть таблица, которая содержит много идентификаторов в качестве случайных чисел, и я хотел бы создать другую таблицу, содержащую все идентификаторы с другим столбцом с датами с первого дня года до указанной даты c.

Например: моя фактическая таблица выглядит следующим образом:

ID  
101  
431  
566

И я хотел бы иметь таблицу, если моя конечная дата c равна 2020-01-03, которая выглядит следующим образом:

ID Date  
101 2020-01-01  
101 2020-01-02  
101 2020-01-03  
431 2020-01-01  
431 2020-01-02  
431 2020-01-03  
566 2020-01-01  
566 2020-01-02  
566 2020-01-03

Не могли бы вы помочь мне решить мою проблему? Заранее спасибо!

1 Ответ

1 голос
/ 31 марта 2020

Вы можете использовать рекурсивный CTE для определения дат, а затем cross join:

with dates as (
      select convert(date, '2020-01-01') as dte
      union all
      select dateadd(day, 1, dte)
      from dates
      where dte < @enddate
     )
select t.id, dates.date
from t cross join
     dates
option (maxrecursion 0);
...