永发信息网

Oracle中的SQL查询语句:如何按照表中不同部门,按照录入时间分12个月份统计求和。

答案:2  悬赏:60  手机版
解决时间 2021-12-28 16:16
  • 提问者网友:夢醒日落
  • 2021-12-27 16:16
数据表(bmfz)如下:

id bm time fz
01 部门1 2013/01/03 2
02 部门2 2013/01/21 3
03 部门1 2013/01/21 3
04 部门2 2013/02/03 1
05 部门1 2013/02/04 2
06 部门1 2013/03/04 4
07 部门2 2013/03/11 1
08 部门1 2013/04/11 5

最终实现如下结果:
bm 1月份fz合计 2月份fz合计 3月份fz合计 4月份fz合计 5月.....12月
部门1 5 2 4 5 无 .... 无
部门2 4 1 1 无 无 .... 无

求教各位SQL/plus查询语句,谢谢了先!
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-12-27 16:35
--希望解决了楼主的问题
select bm,sum(case when to_char(time,'MM')='01' then fz else 0 end ) 1月份fz合计,
sum(case when to_char(time,'MM')='02' then fz else 0 end ) 2月份fz合计,
sum(case when to_char(time,'MM')='03' then fz else 0 end ) 3月份fz合计,
sum(case when to_char(time,'MM')='04' then fz else 0 end ) 4月份fz合计,
sum(case when to_char(time,'MM')='05' then fz else 0 end ) 5月份fz合计,
sum(case when to_char(time,'MM')='06' then fz else 0 end ) 6月份fz合计,
sum(case when to_char(time,'MM')='07' then fz else 0 end ) 7月份fz合计,
sum(case when to_char(time,'MM')='08' then fz else 0 end ) 8月份fz合计,
sum(case when to_char(time,'MM')='09' then fz else 0 end ) 9月份fz合计,
sum(case when to_char(time,'MM')='10' then fz else 0 end ) 10月份fz合计,
sum(case when to_char(time,'MM')='11' then fz else 0 end ) 11月份fz合计,
sum(case when to_char(time,'MM')='12' then fz else 0 end ) 12月份fz合计 from bmfz
group by bm
全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-12-27 17:12
你好! select bm,sum(case when time=1月 then fz else 0 end) ............. from bmfz group by bm order by 1 如果对你有帮助,望采纳。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯