Результат запроса на основе оператора выбора
У меня есть этот кусок кода, который является хранимой процедурой, которая отлично работает, и она динамически генерирует таблицу перекрещенных файлов из простой таблицы:
DECLARE @query VARCHAR(MAX)
DECLARE @years VARCHAR(MAX)
SELECT @years = STUFF(( SELECT DISTINCT
'],[' + [Dimension Code]
FROM MTH_ITNWF710.dbo.[Dimension Set Entry]
FOR XML PATH('')
), 1, 2, '') + ']'
SET @query =
'SELECT * FROM
(
SELECT [Dimension Set ID],[Dimension Code],[Dimension Value Code]
FROM MTH_ITNWF710.dbo.[Dimension Set Entry]
)t
PIVOT (max([Dimension Value Code]) FOR [Dimension Code]
IN ('+@years+')) AS pvt'
EXECUTE (@query)
Насколько я понимаю, невозможно создать живой VIEW на основе динамической хранимой процедуры, подобной описанной выше, поэтому я хотел преобразовать SP выше во вложенный запрос, подобный приведенному ниже, чтобы иметь возможность создавать представление на основе вместо этого вложенный запрос на SP:
SELECT * FROM
(
SELECT [Dimension Set ID],[Dimension Code],[Dimension Value Code]
FROM MTH_ITNWF710.dbo.[Dimension Set Entry]
)t
PIVOT (max([Dimension Value Code]) FOR [Dimension Code]
IN (
SELECT STUFF(( SELECT DISTINCT
'],[' + [Dimension Code]
FROM MTH_ITNWF710.dbo.[Dimension Set Entry]
FOR XML PATH('')
), 1, 2, '') + ']'
)) AS pvt
Но это не работает, это всегда говорит, что есть ошибка рядом с оператором SELECT. Я подозреваю, что оператор SELECT STUFF... ошибочно сообщается как вложенный в первый SELECT.
Любая идея?
Спасибо заранее.