客户提出需求,针对某一列分组加上小计,合计汇总 。网上找了一些有关SQL加合计的语句 。都不是很理想 。决定自己动手写 。
思路有三个:1.很多用GROUPPING和ROLLUP来实现 。 优点:实现代码简洁,要求对GROUPPING和ROLLUP很深的理解 。
缺点:低版本的Sql Server不支持 。
2.游标实现 。 优点:思路逻辑简洁 。
缺点:复杂和低效 。
3.利用临时表 。 优点:思路逻辑简洁,执行效率高 。SQL实现简单 。
缺点:数据量大时耗用内存.
综合三种情况,决定“利用临时表”实现 。
实现效果原始表TB
加上小计,合计后效果
SQL语句
复制代码 代码如下:
select * into #TB from TB
select * into #TB1 from #TB where 1<>1
select distinct zcxt into #TBype from #TB order by zcxt
<