+ -
当前位置:首页 → 问答吧 → 求一个分组统计语句

求一个分组统计语句

时间:2011-12-10

来源:互联网

表结构这样的 表名 chebu
ID ID号  
btfy1 补贴费用1(money)
btfy2 补贴费用2(money)
bm 车辆所属部门(int)
clsx 车辆属性(int 0公车,1私车)


要得到的表为

序号 部门 公车补贴1 公车补贴2 公车补贴合计 私车补贴1 私车补贴2 私车补贴合计 全部合计


如果只按部门统计部分公私车的话,直接group by bm 就出来了,但要按部门,同时要公私车就不会了,请大师们帮忙

作者: egooh   发布时间: 2011-12-10

行轉列~
來點數據~

作者: sjcss   发布时间: 2011-12-10

自己用 case when then else 0 end 搞定了,多谢
 

作者: egooh   发布时间: 2011-12-10

sum(case when .. then ..)

作者: ssp2009   发布时间: 2011-12-10

SQL code

/*
--本人求出的结果如下:
序号  部门 公车补贴1 公车补贴2 公车补贴合计 私车补贴1 私车补贴2 私车补贴合计 全部合计
cb1001    0    233.00      188.00    421.00        0.00        0.00      0.00          421.00
cb1002    0    172.00      216.00    388.00        0.00        0.00      0.00          388.00
cb1003    0    422.00      421.00    843.00        0.00        0.00      0.00          843.00
cb1004    0    231.00      767.00    998.00        0.00        0.00      0.00          998.00
cb1005    1    0.00      0.00        0.00        563.00        234.00      797.00      797.00
cb1006    1    0.00      0.00        0.00        233.00        862.00      1095.00      1095.00
*/

作者: badyflf   发布时间: 2011-12-10

我没用到sum(),就可以求出来了.
引用 3 楼 ssp2009 的回复:
sum(case when .. then ..)

作者: badyflf   发布时间: 2011-12-10

要按部门合计出结果
引用 4 楼 badyflf 的回复:

SQL code

/*
--本人求出的结果如下:
序号 部门 公车补贴1 公车补贴2 公车补贴合计 私车补贴1 私车补贴2 私车补贴合计 全部合计
cb1001 0 233.00 188.00 421.00 0.00 0.00 0.00 421.00
cb1002 0 172.00 2……

作者: egooh   发布时间: 2011-12-10

引用 3 楼 ssp2009 的回复:
sum(case when .. then ..)


简单的行列转换。

作者: fredrickhu   发布时间: 2011-12-10