zoukankan      html  css  js  c++  java
  • Oracle很实用的汇总报表实现方式!grouping_id、rollup的使用

    在财务系统或者其他报表统计的功能里我想类似下面这张报表的case很多,有了grouping_id函数之后会轻松easy实现,不菲催费之力大笑

    序号     项     目 上年 本年   增减  
    日均余额 成本率 日均余额 成本率 日均余额 成本率
         总     计            
    银行借款            
    1 用于商业票据额度            
      国家开发银行            
    2 其它授信额度            
      国家开发银行            
      美国银行            
    集团拆入            
    总部拆入            

    解析:此表是三级汇总,银行汇总到额度(商业额度、其他额度),各种额度汇总到拆入方式(银行借款、集团拆入、总部拆入)、拆入方式汇总总计。grouping_id可以实现N级逐级汇总

    用法:

    案例

    select grouping_id(loan.nborrowtype,
                       loan.nfinancetype,
                       loan.ncounterpartyid) groupid,
           sum(bal.mbalance) / 365 currentYearAvg,
      from billbalance trans
     where 1 = 1
     group by rollup(loan.nborrowtype, loan.nfinancetype, loan.ncounterpartyid)
     order by loan.nborrowtype     desc,
              loan.nfinancetype    desc,
              loan.ncounterpartyid desc

    解析:grouping_id(filed1,field2,field3....),区分字段,函数会根据第一个字段的分组来作为一级显示,即上表的拆入类型。类推,第二个字段是二级显示即拆入方式。。。。

    、 group by rollup(filed1,field2,field3....)、分组字段,同上

    order by loan.nborrowtype     desc,loan.nfinancetype    desc,loan.ncounterpartyid desc,此处desc说明是汇总行在显示行的上面,如需汇总行显示在下面向下汇总,改成asc即可。。

    ps:以上三个部分缺一不可

  • 相关阅读:
    Android工具
    Android工具-DDMS
    Android ADB
    Windows FILETIME 与UNIX时间的转换
    <转>git,github在windows上的搭建
    国内的 Faas 云服务 -- Serverless 收集
    APICloud终于承认侵权并向DCloud道歉了(2019-11-26),知识产权!
    微信及钉钉等小程序开发的可视化工具
    C#的建造者设计模式(Builder),及Aspnet Core的源代码
    AspNet Core 3 的通用主机学习
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3073035.html
Copyright © 2011-2022 走看看