小计 合计 -统计

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 行受影响)

 

posted @ 2010-01-03 10:57  曾祥展  阅读(1650)  评论(0编辑  收藏  举报