我有一个名为sales的数据库表。
| ID | Group | Month | Amt |
____________________________________
1 | Y | Dec-2015 | 300
___________________________________
2 | Z | Dec-2015 | 250
___________________________________
1 | Y | Nov-2015 | 320
____________________________________
2 | Z | Nov-2015 | 430
我想要输出如下表
| ID | group | Dec-2015| Nov-2015
___________________________________
1 | Y | 300 | 320
___________________________________
2 | Z | 250 | 430
____________________________________
我希望你现在能得到我的要求。我不是很擅长Sql。我希望你能提供帮助,提前致谢。
答案 0 :(得分:1)
尝试
SELECT
*
FROM
(
SELECT ID, GROUP, MONTH, AMT
) p
PIVOT
(
SUM(AMT) FOR MONTH IN ([Dec-2015], [Nov-2015])
) AS pvt
将行作为列,然后:
SELECT
ID, Group, SUM([Dec-2015]), SUM([Nov-2015])
FROM
(
SELECT ID, GROUP, MONTH, AMT
) p
PIVOT
(
SUM(AMT) FOR MONTH IN ([Dec-2015], [Nov-2015])
) AS pvt
GROUP BY
ID,
GROUP
按ID
和Group
总结金额和分组。