我没有很多使用pivot / unpivot的经验,可以使用一些帮助。我有一个SQL查询,数据为:
Category Account Name Value
001 1234 BALANCE_01 800
001 1234 BALANCE_02 1000
001 1234 BALANCE_03 1500
001 4567 BALANCE_01 900
001 4567 BALANCE_02 1200
001 4567 BALANCE_03 800
我需要它显示为:
Category Account BALANCE_01 BALANCE_02 BALANCE_03
001 1234 800 1000 1500
001 4567 900 1200 800
我该怎么做?
谢谢, MARCIE
答案 0 :(得分:0)
一种方法是使用条件聚合:
/p:PrecompileBeforePublish=true
/p:UseMerge=true
/p:SingleAssemblyName=AppCode
答案 1 :(得分:0)
我只是一个小组
SELECT Category, Account,
SUM(CASE WHEN NAME='BALANCE_1' THEN Value ELSE 0 END) AS BALANCE_1,
SUM(CASE WHEN NAME='BALANCE_2' THEN Value ELSE 0 END) AS BALANCE_2,
SUM(CASE WHEN NAME='BALANCE_3' THEN Value ELSE 0 END) AS BALANCE_3
FROM Your_Table_You_Did_Not_Name
GROUP BY Category, Account
注意,如果您有多个具有相同类别,帐户和名称的行,则会失败 - 但您没有告诉我们如何处理。