mysql 报表 小计 合计_用SQL实现统计报表中的"小计"与"合计"的方法详解

本文介绍了如何使用SQL语句实现报表中的小计和合计功能。通过创建临时表并利用临时表进行分组求和,实现了在报表中添加小计和合计行,解决了低版本SQL Server不支持GROUPING SETS或ROLLUP的问题。示例代码详细展示了具体操作步骤。

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

客户提出需求,针对某一列分组加上小计,合计汇总 。网上找了一些有关SQL加合计的语句 。都不是很理想 。决定自己动手写 。

思路有三个:1.很多用GROUPPING和ROLLUP来实现 。  优点:实现代码简洁,要求对GROUPPING和ROLLUP很深的理解 。

缺点:低版本的Sql Server不支持 。

2.游标实现 。  优点:思路逻辑简洁 。

缺点:复杂和低效 。

3.利用临时表 。  优点:思路逻辑简洁,执行效率高 。SQL实现简单 。

缺点:数据量大时耗用内存.

综合三种情况,决定“利用临时表”实现 。

实现效果原始表TB

8e09d40b323bb9e8abad8b7ed2f79da3.gif

加上小计,合计后效果

e3bff329ae5ea167195ad0b1c9613af4.gif

SQL语句

复制代码 代码如下:

select * into #TB from TB

select * into #TB1 from #TB where 1<>1

select distinct zcxt into #TBype from #TB order by zcxt

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值