日期:2014-05-17 浏览次数:20530 次
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([业务员] varchar(10),[年] int,[月] int,[客户] varchar(20),[发货] int)
insert [tb] select '张三',2009,1,'香港某某公司',1
union all select '张三',2009,1,'上海某某公司',1
union all select '张三',2009,1,'厦门某某公司',1
--union all select '张三',2009,1,'当月合计',3
--union all select '张三',2009,1,'累计',3
union all select '张三',2009,2,'厦门某某公司',2
union all select '张三',2009,2,'上海某某公司',2
union all select '张三',2009,2,'珠海某某公司',2
--union all select '张三',2009,2,'当月合计',6
--union all select '张三',2009,2,'累计',9
go
select *
from
(
select * from tb
union all
select 业务员,年,月,'当月合计',sum(发货) from tb group by 业务员,年,月
union all
select 业务员,年,月,'累计',(select sum(发货) from (select 业务员,年,月,sum(发货) 发货 from tb group by 业务员,年,月) a where a.业务员=t.业务员 and a.年=t.年 and a.月<=t.月) from (select 业务员,年,月,sum(发货) 发货 from tb group by 业务员,年,月) t group by 业务员,年,月
) tb
order by 年,月,case 客户 when '累计' then 3 when '当月合计' then 2 else 1 end
/*
业务员 年 月 客户 发货
---------- ----------- ----------- -------------------- -----------
张三 2009 1 香港某某公司 1
张三 2009 1 上海某某公司 1
张三 2009 1 厦门某某公司 1
张三 2009 1 当月合计 3
张三 2009 &n