我正在使用公用表表达式和 PIVOT 函数来获取过去 5 年销售的产品数量,但出现错误。为什么我收到以下错误?
USE ADVENTUREWOKS2012;
WITH SALESDATA AS
(
SELECT
Product.PRODUCTID,
Product.Name,
YEAR(OrderDate) AS [YEAR SOLD]
FROM Purchasing.PurchaseOrderDetail
JOIN Production.Product
ON Product.ProductID = PurchaseOrderDetail.ProductID
JOIN Purchasing.PurchaseOrderHeader
ON PurchaseOrderDetail.PurchaseOrderID = PurchaseOrderHeader.PurchaseOrderID
GROUP BY Product.PRODUCTID,Product.Name,YEAR(OrderDate)
)
SELECT Name,
[2005],
[2006],
[2007],
[2008],
[2009],
PRODUCTID
FROM SALESDATA
PIVOT (COUNT(PRODUCTID) FOR [YEAR SOLD] IN ([2005], [2006], [2007], [2008], [2009])) AS P;
错误:
消息 207,级别 16,状态 1,第 21 行无效的列名称“PRODUCTID”。