Оптимальный способ вызова последовательности дат для хранимой процедуры - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть хранимая процедура

EXEC demoProcedure @start='01-01-2019',@end = '02-01-2019'

Хранимая процедура принимает два параметра даты и выполняет поиск данных между ними. Мой вопрос: я бы хотел, чтобы эта процедура проверялась несколько раз для множества диапазонов дат. Например, я хотел бы в основном позвонить:

EXEC demoProcedure @start='01-01-2019',@end = '02-01-2019';
EXEC demoProcedure @start='02-01-2019',@end = '03-01-2019';
....
EXEC demoProcedure @start='12-01-2019',@end = '01-01-2020'

Или эффективно вызывать эту хранимую процедуру один раз в месяц. В прошлом я возился с созданием временной таблицы дат:

;WITH DateTable AS
(
SELECT row = 1, date = '2019-01-01'
UNION ALL

    SELECT row + 1, DATEADD(YEAR, -1, date)
    FROM DateTable
    WHERE row + 1 <= 7
)
SELECT *
FROM DateTable

Который фактически возвращает Яна первым за последние 7 лет. Есть ли способ легко объединить эти два, чтобы вызвать хранимую процедуру один раз для каждого набора дат? То есть вызовите его для start = row (1), end = row (2); начало = строка (2), конец = строка (3); .... до конца строки? Или есть более простой способ настроить все это. Спасибо!

...