PIVOT 不工作 ')' 附近的语法不正确

PIVOT not working Incorrect syntax near ')'

T-SQL代码:

SELECT iCarrierInvoiceDetailsID, [1],[2],[3]
FROM [GroundEDI].[dbo].[tblCarrierInvoiceDetails]
PIVOT(MAX(dTotalCharge) FOR iCarrierInvoiceHeaderID IN ([1],[2],[3]))AS P

错误:

Msg 102, Level 15, State 1, Line 3
Incorrect syntax near ')'.

知道我为什么会收到此错误吗?

看起来您正试图直接从 table 本身而不是枢轴 select 枢轴列。您将需要执行以下操作:

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;