想要一个选择查询,其中数据库数据表示为列名

时间:2016-02-18 10:32:19

标签: sql sql-server database select

我有一个名为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。我希望你能提供帮助,提前致谢。

1 个答案:

答案 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

IDGroup总结金额和分组。