我有一个表,其中包含基于费用购买的条目。如果我需要三列(部门,月份,总数)的结果,如下所示。

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/

10-11 02:49