SQLでピボットテーブルを実装しようとしていますが、機能していません。私は現在持っていることは以下の通りです:Sqlテーブルのピボットエラー
WITH Pivoted
AS
(
select vg.ParentProductCategoryName, c.CompanyName, sd.LineTotal
FROM SalesLT.Product p join SalesLT.vGetAllCategories vg on p.ProductCategoryID = vg.ProductCategoryID
Join SalesLT.SalesOrderDetail sd on p.ProductID = sd.ProductID
JOIN SalesLT.SalesOrderHeader as soh ON sd.SalesOrderID = soh.SalesOrderID
JOIN SalesLT.Customer AS c ON soh.CustomerID = c.CustomerID
pivot(Sum([LineTotal]) for [ParentProductCategoryName] in (Accessories, Bikes, Clothing, Components)) AS sales
)
select * from Pivoted p;
;
私はエラーを取得する:
multi part "Column name" Identifier could not be bounded.
私が代わりに*選択部分に列名を削除し、使用している場合、私が手:
The column 'ProductCategoryID' was specified multiple times for...
私が欲しいのは、reTable(列としてピボット表示されている)の各ParentProductCategoryName(vGetAllCategories内)ごとに、総収入(SalesOrderDetailテーブルのlineTotalの合計で指定)を表示することです。各CompanyName(顧客)のスペクトラムこれをより良くするには?ありがとう。
変更' vg.ParentProductCategoryName'でSUM集合を使用することができます'for [ParentProductCategoryName]'を使用するか、適切に別名を付けます。 – scsimon
問題ではなく、違いはありません。 – mj1261829