Oracle 实现小计、合计

本文介绍了在Oracle数据库中使用rollup函数进行小计和合计的SQL查询方法,以及如何通过union操作合并数据。作者还展示了如何使用decode和grouping函数实现数据分组和总计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先:没有with rollup的方法。

方法一:group by rollup实现小计、合计

方法二:利用union查询拼接

其他的方法后面再补充~~

select to_char(rownum),a.clientaccnumber,a.clientaccount,a.amount,a.contract_numberfrom (select clientaccnumber,clientaccount,amount,contract_number as contract_numberfrom lc_abc_export_data laedwhere deduct_info_id =  '3b6587b1f5ad4488879f99a810fb4097'and paynumber is not nullorder by cast(serialno as int)) a
union
select '合计', '', '', sum(a.amount), ''from (select clientaccnumber,clientaccount,amount,contract_number as contract_numberfrom lc_abc_export_data laedwhere deduct_info_id =  '3b6587b1f5ad4488879f99a810fb4097'and paynumber is not nullorder by cast(serialno as int)) a;
select decode(grouping(to_char(rownum)),1,'合计',to_char(rownum)),a.clientaccnumber,a.clientaccount,sum(a.amount),a.contract_numberfrom (select clientaccnumber,clientaccount,amount,contract_number as contract_numberfrom lc_abc_export_data laedwhere deduct_info_id =  '3b6587b1f5ad4488879f99a810fb4097'and paynumber is not nullorder by cast(serialno as int)) agroup by rollup((to_char(rownum),a.clientaccnumber,a.clientaccount,a.contract_number))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值