运行此代码时:
drop table #yt
create table #yt
(
[Country] NVARCHAR(MAX) ,
[USRankTitle] NVARCHAR(MAX),
[xCount] int
);
INSERT INTO #yt ([Country], [USRankTitle], [xCount])
SELECT
[Country], [USRanktitle],
COUNT(USranktitle) AS xcount
FROM
UMADUserAccounts
GROUP BY
Country, USRankTitle
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SELECT @cols = 'select USRankTitle from #yt group by USRankTitle order by
USRankTitle'
SET @query = 'SELECT * from (
select Country, USRankTitle
from #yt group by country,USRankTitle
) x
pivot (
sum(xCount)
for USRankTitle in (' + @cols + ')
) p'
EXECUTE(@query)
我得到这些错误:
第156条消息,状态15,状态1,第7行
关键字“ select”附近的语法不正确。第15层状态1的7行第102条消息
')'附近的语法不正确。
我已经检查了代码并尝试了各种不同的方法,但似乎无法解决。
谢谢!
答案 0 :(得分:0)
您可以如下更改SELECT
的{{1}}查询并尝试:
@cols
还可以在SELECT @cols = STUFF((
SELECT ',' + QUOTENAME(USRankTitle)
FROM #yt
GROUP BY USRankTitle
ORDER BY USRankTitle
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
之前添加PRINT @query
,并可以检查组成的查询。