iCarrierInvoiceHeaderID

iCarrierInvoiceHeaderID

T-SQL代码:

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


错误:


Msg 102,第15层,州1,第3行
')'附近的语法不正确。


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

最佳答案

看起来您正在尝试直接从表本身而不是枢轴中选择枢轴列。您将需要执行以下操作:

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;

08-06 22:02