本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下   客户提出需求,针对某一列分组加上小计,合计汇总.网上找了一些有关SQL加合计的语句.都不是很理想.决定自己动手写.思路有三个:1.很多用GROUPPING和ROLLUP来实现.  优点:实现代码简洁,要求对GROUPPING和ROLLUP很深的理解.  缺点:低版本的Sql Server不支持. 2.游标实现.  优点:思路逻辑简洁.  缺点:复杂和低效. 3.…
问题: 开发一个关于各烟叶等级的二次验级的原发件数.原发重量及验收重量的统计报表.其中,原发件数.原发重量和验收重量等列要求计算出各等级组别的小计和所有记录的合计. 语句: SELECT DECODE(GROUPING(T4.TOBACCO_CLASS_TYPE) + GROUPING(T1.TOBACCO_CLASS_NAME),                                1,                                DECODE(T4.TOBACCO…
今天遇到一个需求,gird表格数据如下:  部门  类型 数据   A  类型1  1  A  类型2  2  B  类型1  3  B  类型2  4   合计 10 实际需要显示的结果为:  部门  类型 数据   A  类型1  1  A  类型2  2    小计  B  类型1  3  B  类型2  4    小计  7   合计 10 上述需求一般有三种处理方式: 1.数据库直接生成分组数据.该方式从数据源头进行处理,好处是不需要在DW窗口做分组处理,不好还处是会在数据库中重复检索…
SQL合计汇总实现数据N+1条显示: 注意group by rollup((ename, job, empno))!!! select decode(grouping(ename) + grouping(job) + grouping(empno),               3,               '合计',               ename) ename,        decode(grouping(ename) + grouping(job) + grouping(em…
1-- DECODE函数是Oracle PL/SQL是功能强大的函数之一,假设我们想给职员加工资,其标准是:工资在8000元以下的将加20%:工资在8000元以上的加15%,通常的做法是,先选出记录 中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断. 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完…
场景:查询人员指定年月工作量信息 USE [Test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[GetWorkLoadMain] @year int, @month int, ) as begin ) )+'-01' declare @sql varchar(max) set @sql='' select @sql=@sql+',['+Rtrim(ProjectName)+'] int…
2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下: 查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的结果如下 其中sales表的数据结构如下: 其中stores表的数据结构如下: 1.1 普通方法(容易…
SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析) 2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下: 查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的结果…
摘自 http://blog.itpub.net/26977915/viewspace-734114/ 在报表语句中经常要使用各种分组汇总,rollup和cube就是常用的分组汇总方式. 第一:group by rollup 1.如果使用诸如group by rollup(A,B,C)的方式分组,那么返回的分组结果是(A,B,C) (A,B) (A) (NULL) 一共四种结果.即从右到左递减,最后来个合计. 例如: SQL> select * from t; YEARS     MONTHS…
转自:http://www.jb51.net/article/18860.htm 这里介绍sql server2005里面的一个使用实例: CREATE TABLE tb(province nvarchar(10),city nvarchar(10),score int) INSERT tb SELECT '陕西','西安',3 UNION ALL SELECT '陕西','安康',4 UNION ALL SELECT '陕西','汉中',2 UNION ALL SELECT '广东','广州'…