oracle 报表聚合,Oracle很实用的汇总报表实现方式!grouping_id

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

58b3da5e1f5336827b48fa1b1485db6d.png

序号

项     目

上年

本年

增减

日均余额

成本率

日均余额

成本率

日均余额

成本率

总     计

银行借款

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:以上三个部分缺一不可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值