基于select语句查询结果

时间:2015-08-18 15:20:51

标签: sql-server stored-procedures nested-queries

我有一段代码,它是一个完美运行的存储过程,它动态地从普通表生成一个交叉的fieds表:

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中。

有什么想法吗?

非常感谢提前。

0 个答案:

没有答案