Я хотел бы знать, есть ли концепция макроса в SQL Сервере и возможно ли чтение списка в макросе?
Например, если у меня есть несколько дат, я хочу введите в список, как показано ниже (рассмотрим следующие 4 макропеременные: Start_Date, End_Date, Prev_Date и Table_Name)
Start_date=[1/1/2020, 2/1/2020, 3/1/2020]
End_date=[1/31/2020, 2/29/2020, 3/31/2020]
Prev_Date=[12/31/2019,1/31/2020,2/29/2020]
Table_Name=[P1,P2,P3]
--and have a SQL script which runs like below
select a.metric1 as &Table_Name,
b.metric2,
c.metric3
into &Table_Name(i)
from
(
select metric1 from table
where Date between &Start_Date(i) & &End_Date(i)
)a
inner join
(
select metric2 from tableX
where date<=&End_Date(i)
)b
on a.key=b.key
inner join
(
select metric3 from tableX
where date<=&Prev_Date(i)
)c
on a.key=c.key;
Итак, в конце этого кода у нас будет 3 таблицы P1, P2, P3 создать, который я тогда объединю вместе. По сути, P1 - это период между начальной датой 1/1/2020 и конечной датой 31.012020 и предыдущей датой 31.12.2009 и т. Д. счетчик чтения элементов 3 списков макропеременных.