TSQL透视表语法
我尝试了一个透视表,如下所示:TSQL透视表语法,sql,sql-server,sql-server-2008,tsql,pivot-table,Sql,Sql Server,Sql Server 2008,Tsql,Pivot Table,我尝试了一个透视表,如下所示: SELECT * FROM (SELECT [SurveyID] ,[SurveyQuestion] ,[SurveyQuestionID] ,[SequenceNumber] FROM [Succession_Tool].[dbo].[SurveyQuestions] ) X PIVOT ( SUM([SurveyID]) FOR [SurveyQuestion] IN (A,B,C)
SELECT * FROM
(SELECT
[SurveyID]
,[SurveyQuestion]
,[SurveyQuestionID]
,[SequenceNumber]
FROM [Succession_Tool].[dbo].[SurveyQuestions]
) X
PIVOT
(
SUM([SurveyID]) FOR [SurveyQuestion] IN (A,B,C)
) Z
我得到以下错误:
Msg 325, Level 15, State 1, Line 9
Incorrect syntax near 'PIVOT'. You may need to set the compatibility level of the current database to a higher value to enable this feature. See help for the SET COMPATIBILITY_LEVEL option of ALTER DATABASE.
我试图根据stackoverflow和其他地方(如或)的一些其他文章重写它,但它们都导致了上面相同的错误。有什么简单的东西我遗漏了吗?值得一提的是,我的兼容性级别是100,这是SQL Serer 2008,我不需要聚合,因为我只想将格式转换成CSV文件
更新:我在下面的说明中再次重写了查询
WITH MYSurveyQuestions AS
(SELECT
[SurveyID]
,[SurveyQuestion]
,[SurveyQuestionID]
,[SequenceNumber]
FROM [Succession_Tool].[dbo].[SurveyQuestions]
)
SELECT * FROM MYSurveyQuestions
PIVOT
(SUM(SURVEYID) FOR SurveyQuestion
IN (A,B,C,D,E,F)) AS PVT
现在我得到以下错误:
Msg 102, Level 15, State 1, Line 11 Incorrect syntax near ')'.
不幸的是,这对我来说与第一个错误的含义相同,因为我仍然找不到错误(耸耸肩)…我觉得我离错误更近了。双击错误突出显示
(调查金额)调查问题
运行
SELECT@@VERSION
时会得到什么结果?Microsoft SQL Server 2008 R2(SP2)-10.50.4000.0(X64)2012年6月28日08:36:30版权所有(c)Windows NT 6.1上的Microsoft Corporation Enterprise Edition(64位)(构建7601:Service Pack 1)(虚拟机监控程序)@garethdb当前数据库和您正在选择的数据库都应该具有正确的兼容性级别。实际上我错了,只有当前数据库必须具有所需的兼容性级别。其他数据库(例如,在您的示例中,sequence\u Tool
)不必。因此,正如消息所说,可能是当前数据库,不管它是什么,需要修复。所有数据都来自同一个数据库(继承工具),其级别为100