sql分级汇总
--測试数据
create table tb([DB-ID] varchar(10),ENTITY varchar(10),DATE varchar(10),[CUST-NO] int,AMOUNT decimal(10,2),TAX decimal(10,2))
insert tb select 'RCHQ','001','2004-11-10',200000,100.00,17.00
union all select 'RCHQ','001','2004-11-10',200000,200.00,34.00
union all select 'RCHQ','001','2004-11-12',200000,150.00,25.50
union all select 'RCHQ','002','2004-11-10',200000,100.00,17.00
union all select 'RCHQ','002','2004-11-10',200000,200.00,34.00
union all select 'RCHQ','002','2004-11-12',200000,150.00,25.50
go
--查询
select [DB-ID],ENTITY,DATE,[CUST-NO],AMOUNT,TAX
from(
select [DB-ID]=case
when grouping([DB-ID])=1 then '合计'
else [DB-ID] end
,ENTITY=case
when grouping([DB-ID])=1 then ''
when grouping(ENTITY)=1 then '小计'
else ENTITY end
,DATE=case
when grouping([DB-ID])=1 then ''
when grouping(ENTITY)=1 then ''
when grouping(DATE)=1 then '小计'
else DATE end
,[CUST-NO]=case
when grouping([DB-ID])=1 then ''
when grouping(ENTITY)=1 then ''
when grouping(DATE)=1 then ''
when grouping([CUST-NO])=1 then '小计'
else cast([CUST-NO] as varchar) end
,AMOUNT=sum(AMOUNT),TAX=sum(TAX)
,s1=grouping([DB-ID]),s2=[DB-ID]
,s3=grouping(ENTITY),s4=ENTITY
,s5=grouping(DATE),s6=DATE
,s7=grouping([CUST-NO]),s8=[CUST-NO]
from tb
group by [DB-ID],ENTITY,DATE,[CUST-NO] with rollup
having grouping([CUST-NO])=1
union all
select [DB-ID],ENTITY,DATE,cast([CUST-NO] as varchar),AMOUNT,TAX
,s1=0,s2=[DB-ID]
,s3=0,s4=ENTITY
,s5=0,s6=DATE
,s7=0,s8=[CUST-NO]
from tb
)a order by s1,s2,s3,s4,s5,s6,s7,s8
go
--删除測试
drop table tb
/**
DB-ID ENTITY DATE CUST-NO AMOUNT TAX
RCHQ 001 2004-11-10 200000 100.00 17.00
RCHQ 001 2004-11-10 200000 200.00 34.00
RCHQ 001 2004-11-10 小计 300.00 51.00
RCHQ 001 2004-11-12 200000 150.00 25.50
RCHQ 001 2004-11-12 小计 150.00 25.50
RCHQ 001 小计 450.00 76.50
RCHQ 002 2004-11-10 200000 100.00 17.00
RCHQ 002 2004-11-10 200000 200.00 34.00
RCHQ 002 2004-11-10 小计 300.00 51.00
RCHQ 002 2004-11-12 200000 150.00 25.50
RCHQ 002 2004-11-12 小计 150.00 25.50
RCHQ 002 小计 450.00 76.50
RCHQ 小计 900.00 153.00
合计 900.00 153.00
*/
sql分级汇总的更多相关文章
- SQL小汇总
SQL小汇总 1.对每个时段的数据进行统计2.查询时间条件(to_date)3.插入序列号和系统时间4.查询当天.7天内.30天内5.查询前后x小时.分钟.天.月.6.保留小数点后4位7.查询字段A中 ...
- SQL语句汇总(终篇)—— 表联接与联接查询
上一篇博文说到相关子查询效率低下,那我们怎么能将不同表的信息一起查询出来呢?这就需要用到表联接. 和之前的UNION组合查询不同,UNION是将不同的表组合起来,也就是纵向联接,说白了就是竖着拼起来. ...
- SQL语句汇总(一)——数据库与表的操作以及创建约束
首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉. 前言:此文旨在汇总从建立数据库到联接查询等绝大部分SQL语句.SQL语句虽不能说很多,但稍有时间不写就容易 ...
- 初级SQL开发汇总指南
汇总部分内容来自网络(作者 :zhtbs),比较基础的东西,能够了解比较基础的一些东西. Select语句概要 数据库中数据的提取(查询)使用select 语法,主要有以下几点作用 l 提取的数据 ...
- SQL语句汇总(终篇)—— 表联接与联接查询
既然是最后一篇那就不能只列出些干枯的标准语句,更何况表联接也是SQL中较难的部分,所以此次搭配题目来详细阐述表联接. 上一篇博文说到相关子查询效率低下,那我们怎么能将不同表的信息一起查询出来呢?这就需 ...
- SQL语句汇总(一)——数据库与表的操作以及创建约束
首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉. 前言:此文旨在汇总从建立数据库到联接查询等绝大部分SQL语句.SQL语句虽不能说很多,但稍有时间不写就容易 ...
- SQL练习题汇总(Sqlserver和Mysql版本)
所需表及数据执行脚本: CREATE TABLE STUDENT (SNO ) NOT NULL, SNAME ) NOT NULL, SSEX ) NOT NULL, SBIRTHDAY DATET ...
- MS SQL 分类汇总参数 grouping(**)=1 rollup cubt
转:http://www.111cn.net/database/mssqlserver/43368.htm 本文章介绍了关于sql多级分类汇总实现方法及数据结构,有碰到问题的同学可参考一下. 据库结构 ...
- 基本Sql语句汇总
关于Sql语句的学习,选择的DBMS为SQL Server,Sql语句随着工作中的应用不断补充,不具备系统性,为个人笔记汇总,网上有很多优秀的资源,故不对每一处应用做过多细致的说明,后期会对部分篇幅较 ...
随机推荐
- 《完美应用Ubuntu》第3版 何晓龙 著
系统篇 用好Ubuntu掌握这些就够了 第1章 Ubuntu的进化 1.1 GNU/Linux的历史和文化 1.1.1 GNU/Linux是Linux的全称 1.1.2 Linux的诞生 1.2 Li ...
- 设计模式之单例模式 Singleton实现
饿汉式 饿汉式单例模式,static变量会在类装载时初始化,此时也不会涉及多个线程对象访问该对象的问题.虚拟机保证只会装载一次该类,肯定不会发生并发访问的问题, 因此可以省略synchronized关 ...
- 【转】Building a RESTful Web Service
目标 构建一个service,接收如下HTTP GET请求: [plain] view plain copy http://localhost:8080/greeting 并返回如下JSON格式的 ...
- TensorFlow开发流程 Windows下PyCharm开发+Linux服务器运行的解决方案
不知道是否有许多童鞋像我一样,刚开始接触TensorFlow或者其他的深度学习框架,一时间有一种手足无措的感觉. 怎么写代码?本机和服务器的关系是啥?需要在本机提前运行吗?怎么保证写的代码是对的??? ...
- Codeforces 903E Swapping Characters
题目大意 考虑一个未知的长为 $n$($2\le n\le 5000$)由小写英文字母构成的字符串 $s$ .给出 $k$($1\le k\le 2500$,$nk\le 5000$)个字符串 $s_ ...
- POJ——3070Fibonacci(矩阵快速幂)
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12329 Accepted: 8748 Descri ...
- poj1324 Holedox Moving
Holedox Moving Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 16980 Accepted: 4039 D ...
- P2730 魔板 Magic Squares (搜索)
题目链接 Solution 这道题,我是用 \(map\) 做的. 具体实现,我们用一个 \(string\) 类型表示任意一种情况. 可以知道,排列最多只有 \(8!\) 个. 然后就是直接的广搜了 ...
- foj 2144 三位几何+区间覆盖
题目大意:一个人站在三维坐标系下的原点处用炮打蚊子,给出n个蚊子的起始坐标跟单位时间匀速移动的方向向量,距离他R以内的蚊子都可以打到,不过他也需要休息,没蚊子的时候也可以休息下.求他要起来多少次打蚊子 ...
- 【CF1023B】Pair of Toys(解方程)
题意:给定n个玩具要你选出两个玩具求出k的价值,第i个玩具的价值为i.若是没有选择方案,输出0 补充:玩具A与玩具B 和 玩具B和玩具A 是同一种选择 n,k<=1e14 思路:列出式子,解不等 ...