我希望有人可以帮我这个
我有这样的数据:
SERVICE ITEM1 ITEM2 ITEM3 ITEM4
GOLD 0 0 0 0
SILVER 2 2 0 2
BRONZE 0 4 0 26
但是想要这样:
GOLD SILVER BRONZE
2 0 0
2 0 4
0 0 0
2 0 26
我认为这是一个无法解决的问题,但无法弄清楚语法
非常感谢答案 0 :(得分:2)
/*Create testing Data - You don't need this*/
SELECT *
INTO #YourTable FROM
(
SELECT 'GOLD' AS SERVICE, 0 AS ITEM1, 0 AS ITEM2, 0 AS ITEM3, 0 AS ITEM4 UNION ALL
SELECT 'SILVER' AS SERVICE, 2 AS ITEM1, 2 AS ITEM2, 0 AS ITEM3, 2 AS ITEM4 UNION ALL
SELECT 'BRONZE' AS SERVICE, 0 AS ITEM1, 4 AS ITEM2, 0 AS ITEM3, 26 AS ITEM4
) testdata
/*You just need this*/
SELECT *
FROM
/*Substitute the name of your table here*/
(SELECT SERVICE, ITEM1, ITEM2, ITEM3, ITEM4 FROM #YourTable) BaseData
UNPIVOT
(Vals FOR Item IN
(ITEM1, ITEM2, ITEM3, ITEM4)
)AS unpvt
PIVOT (SUM(Vals) FOR SERVICE IN ([GOLD],[SILVER],[BRONZE]) ) AS pvt;
答案 1 :(得分:-1)
熟悉PIVOT