当前位置: 数据库>sqlserver
经典sql代码--小计 合计 -统计
来源: 互联网 发布时间:2014-08-29
本文导语: 经典sql代码--小计 合计 -统计 --创建表 create table [tb]([客户编码] varchar(10),[客户名称] varchar(10),[数量] int) insert [tb] select '001','A',2 union all select '001','A',3 union all select '001','A',4 union all select '002','B',1 union all select '002','B',2 --...
经典sql代码--小计 合计 -统计
--创建表
create table [tb]([客户编码] varchar(10),[客户名称] varchar(10),[数量] int)
insert [tb]
select '001','A',2 union all
select '001','A',3 union all
select '001','A',4 union all
select '002','B',1 union all
select '002','B',2
--统计
select * from
(select * from tb
union all
select 客户编码 , 客户名称 = '小计' , sum(数量) 数量 from tb group by 客户编码
union all
select 客户编码 = '', 客户名称 = '合计' , sum(数量) 数量 from tb
) t
order by
case 客户编码 when '' then 2 else 1 end ,客户编码 ,
case 客户名称 when '小计' then 2 else 1 end
drop table tb
/*
客户编码 客户名称 数量
---------- ---------- -----------
001 A 2
001 A 3
001 A 4
001 小计 9
002 B 1
002 B 2
002 小计 3
合计 12
(所影响的行数为 8 行)
*/
create table tb (date char(10),col varchar(10))
insert tb select '2005-05-09','胜'
insert tb select '2005-05-09','胜'
insert tb select '2005-05-09','负'
insert tb select '2005-05-09','负'
insert tb select '2005-05-10','胜'
insert tb select '2005-05-10','负'
insert tb select '2005-05-10','负'
select date
,sum(case when col='胜' then 1 else 0 end) as [胜]
,sum(case when col='负' then 1 else 0 end) as 负
from tb
group by date
date 胜 负
---------- ----------- -----------
2005-05-09 2 2
2005-05-10 1 2
(2 行受影响)
原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2010/01/03/1638155.html
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。