我有一个表,其中包含基于费用购买的条目。如果我需要三列(部门,月份,总数)的结果,如下所示。
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
最佳答案
并非完全是您要的,但是我要实现的方式如下:
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一起正常工作。
关于mysql - mysql命令基于两个不同的列求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14584277/