用Oracle写分组计算数量后再合计,并得出百分数

来源:互联网 发布:阿里云邮箱地址前缀 编辑:程序博客网 时间:2024/05/17 21:46

通过报表的形式展示各部门行为违章自查问题数量、公司检查问题数量、自我管理力度(自查比率%。这就要求按照部门进行计算自查问题数量和公司检查问题数量。最后总计

用的是grouping和group by rollup

则Oracle语句是:

select decode(grouping(zrbm),1,'合计',zrbm) zrbm,sum(dwzcwtsl) dwzcwtsl,sum(gsjcwtsl) gsjcwtsl,
round(to_number((case when sum(dwzcwtsl)=0 and sum(gsjcwtsl)=0 then 1
 else sum(dwzcwtsl)/(sum(dwzcwtsl)+sum(gsjcwtsl)) end)),4)*100||'%' zwglld
      from(
        select zrbm,
            sum(decode(wtly,'车间检查',1,0)) dwzcwtsl,
              sum(decode(wtly,'厂级检查',1,0)) gsjcwtsl
            from B82_MRZCXWWZ_TD  where fxwt is not null and dcid='120204'
              group by dcid,zrbm  
   
)group by rollup(zrbm)

结果如图:


原创粉丝点击