T-SQL code:
T-SQL代码:
SELECT iCarrierInvoiceDetailsID, [1],[2],[3]
FROM [GroundEDI].[dbo].[tblCarrierInvoiceDetails]
PIVOT(MAX(dTotalCharge) FOR iCarrierInvoiceHeaderID IN ([1],[2],[3]))AS P
Error:
错误:
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near ')'.消息102,级别15,状态1,行3'''附近的语法不正确。
Any idea why I am getting this error?
知道我为什么会收到这个错误吗?
1 个解决方案
#1
2
It looks like you are trying to directly select the pivot columns from the table itself and not the pivot. You will need to do something like this:
看起来您正在尝试直接从表本身而不是枢轴中选择枢轴列。你需要做这样的事情:
SELECT p.[1],p.[2],p.[3]
FROM
(SELECT iCarrierInvoiceHeaderID
,dTotalCharge
FROM [GroundEDI].[dbo].[tblCarrierInvoiceDetails]) t
PIVOT(MAX(dTotalCharge) FOR iCarrierInvoiceHeaderID IN ([1],[2],[3])
)AS P;
#1
2
It looks like you are trying to directly select the pivot columns from the table itself and not the pivot. You will need to do something like this:
看起来您正在尝试直接从表本身而不是枢轴中选择枢轴列。你需要做这样的事情:
SELECT p.[1],p.[2],p.[3]
FROM
(SELECT iCarrierInvoiceHeaderID
,dTotalCharge
FROM [GroundEDI].[dbo].[tblCarrierInvoiceDetails]) t
PIVOT(MAX(dTotalCharge) FOR iCarrierInvoiceHeaderID IN ([1],[2],[3])
)AS P;