我有一个表格,其中包含基于费用购买的条目。如果有三列我需要(部门,月份,总数)的结果,如下所示。
dept | month | total
--------------------
aaaa | octob | 8
aaaa | octob | 4
aaaa | novm | 143
bbbb | octob | 42
bbbb | novm | 116
bbbb | novm | 117
bbbb | decm | 5
我希望看到这样的结果集:
dept | oct | nov | dec
----------------------
aaaa | 12 | 143 | 0
bbbb | 42 | 233 | 5
答案 0 :(得分:1)
不完全是你所要求的,但我实现这一点的方式如下:
Select department, month, sum(total)
FROM MyTable
GROUP BY (department, month)
这将返回如下结果集:
department | Month | Total
Geology | Oct | 500
Geology | Nov | 400
Biology | Oct | 250
等。然后,您可以在代码中订购和使用以获得您想要的格式。
正是你所要求的是:
SELECT department, SUM(CASE WHEN Month='oct' THEN Total END) as Oct,
SUM(CASE WHEN name='Nov' THEN Total END) as Nov
FROM MyTable
Group By (department)
虽然我不完全确定这可以与group by一起正常工作。