У меня уникальная и редкая ситуация в T-SQL. Это похоже на загадку.
1) У меня есть (входной) набор данных, скажем X
, с 7
строками и всего одним столбцом с именем YearMonth
:
DataSet X :
YearMonth
2018-08
2018-09
2018-10
2018-11
2018-12
2019-01
2019-02
По существу, YearMonth
представляет месяцы между Aug 2018
до Feb 2019
.
2) У меня есть встроенная пользовательская функция (встроенная функция) под названием dbo.fn_zzwwhh
:
Эта встроенная функция возвращает таблицу с примерно 10 столбцами и двумя строками, принимая такие данные, как 2018-08
. Встроенная функция вызывается следующим образом:
SELECT * FROM dbo.fn_zzwwhh (@YearMonth)
По сути, эта встроенная функция dbo.fn_zzwwhh
принимает значение YearMonth
, скажем, 2018-08
и возвращает две строки и десять столбцов. Всегда возвращает две строки и десять столбцов
даже для других входов, таких как 2018-09
, 2018-10
, 2018-11
, 2018-12
, 2019-01
, 2019-02
.
Теперь моя ситуация такова:
Мне нужно разработать новый набор данных, скажем, набор данных Z, со следующим выводом:
SELECT * FROM dbo.fn_zzwwhh ('2018-08')
UNION ALL
SELECT * FROM dbo.fn_zzwwhh ('2018-09')
UNION ALL
SELECT * FROM dbo.fn_zzwwhh ('2018-10')
UNION ALL
SELECT * FROM dbo.fn_zzwwhh ('2018-11')
UNION ALL
SELECT * FROM dbo.fn_zzwwhh ('2018-12')
UNION ALL
SELECT * FROM dbo.fn_zzwwhh ('2019-01')
UNION ALL
SELECT * FROM dbo.fn_zzwwhh ('2019-02')
Этот набор данных Z
необходим для моего отчета SSRS.
Может кто-нибудь сообщить мне, как передать КАЖДЫЙ ряд из набора данных X
(по одному за раз)
во встроенную функцию dbo.fn_zzwwhh
и разработать набор данных Z
, используя UNION ALL
между каждым переданным входным значением?
Буду очень признателен, если вы предоставите мне решение.