SQL Server求和函数

时间:2018-01-17 13:44:55

标签: sql sql-server sum

我有以下问题:

带有票据的表格包含三个列医院,账单号和账单金额。

---------------------------------
| hospital | Number  | Amount   |
---------------------------------
|  a       | 33    | 20         |
---------------------------------
|  a       | 11    | 10         |
---------------------------------
|  a       | 5     | 40         |
---------------------------------
|  a       | 34    | 55         |
---------------------------------
|  b       | 3     | 20         |
---------------------------------
|  b       | 9     | 30         |
---------------------------------
|  b       | 11    | 15         |
---------------------------------

Bill-Numbers的范围从0-9到10-19,从20-29到30-39 所以我需要一个结果表来显示医院和总金额以及属于同一范围的所有账单,如:

----------------------------------------------
|Hospital | range1|range2|range3|range4|Total|
----------------------------------------------
|a        | 5     |11    |0     |67    |93   |
----------------------------------------------
|b        | 12    | 11   | 0    | 0    |23   |
----------------------------------------------

我可以轻松地获得医院和总数(正常组和总和功能),但是当我试图获得这个范围的东西它不起作用。

有人能帮助我这一点吗?

1 个答案:

答案 0 :(得分:1)

您可以使用条件聚合:

select hospital,
       sum(case when number between 0 and 9 then amount else 0 end) as range1,
       . . .
from bills b
group by hospital;