0

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

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
4

1 回答 1

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。

于 2013-01-29T14:00:58.413 回答