我正面临以下挑战。我需要在同一列上旋转表数据两次。这是数据的屏幕截图。
我希望每个项目 ID 都有一行,其中包含每年的购买价值和销售价值。我尝试通过选择“年份”列两次,对其进行格式化,以便每个销售年份以“S”为前缀,每个购买年份以“P”开头,并使用 2 个枢轴围绕 2 年列旋转. 这是 SQL 查询(用于 SQL Server 2008):
SELECT [Item ID],
[P2000],[P2001],[P2002],[P2003],
[S2000],[S2001],[S2002],[S2003]
FROM
(
SELECT [Item ID]
,'P' + [Year] AS YearOfPurchase
,'S' + [Year] AS YearOfSelling
,[Purchasing value]
,[Selling value]
FROM [ItemPrices]
) AS ALIAS
PIVOT
(
MIN ([Purchasing value]) FOR [YearOfPurchase] in ([P2000],[P2001],[P2002],[P2003])
)
AS pvt
PIVOT
(
MIN ([Selling value]) FOR [YearOfSelling] in ([S2000],[S2001],[S2002],[S2003])
)
AS pvt2
结果并不完全是我所希望的(见下图):
如您所见,每个项目 ID 仍然不止一行。有没有办法将行数减少到每个项目正好一个?所以它看起来有点像下面的 Excel 屏幕截图?