SQL для повторения строк с определенного года до текущего года - PullRequest
0 голосов
/ 19 марта 2019

У меня есть следующая таблица,

Code    Desc    Curr_Year
-------------------------
AB      XYZ     2019

И я ищу SQL-запрос, который повторяет одну и ту же строку с 1993 по 2019 год.

Вывод должен выглядеть следующим образом:

Code    Desc    Curr_Year Inc_Yr
---------------------------------
AB      XYZ     2019      1993
AB      XYZ     2019      1994
AB      XYZ     2019      1995
AB      XYZ     2019      1996
.       .       .         .
.       .       .         .

AB      XYZ     2019      2019

Я использую SQL Server 2012.

Я не эксперт по SQL и действительно изо всех сил пытаюсь это сделать.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 19 марта 2019

SQL DEMO

;WITH Years AS
(
  SELECT Inc_Yr = ROW_NUMBER() OVER (ORDER BY [object_id]) 
  FROM sys.all_objects     
)
SELECT Table1.*, Inc_Yr 
FROM Years 
CROSS JOIN Table1
WHERE Inc_Yr BETWEEN 1993  AND 2019
ORDER BY Inc_Yr;
0 голосов
/ 19 марта 2019

Я бы сделал это так:

SELECT Code
      ,Desc
      ,Curr_Year 
      ,g.num as Inc_Yr
  FROM yourtable A
  CROSS JOIN (SELECT TOP 26 1992+ ROW_NUMBER() OVER (ORDER BY [object_id]) as num FROM sys.all_objects) g

На первом шаге генерируется список значений всех нужных вам лет, затем просто CROSS JOIN.

Если вам не разрешено использовать таблицу sys.all_objects, вы все равно можете использовать список значений. Посмотрите на второй ответ на этот вопрос:

Как выбрать из списка значений в SQL Server

...