客户 项目 数量 时间
a aa 200 2006-6-12
b bb 200 2006-6-12
a aa 300 2006-6-15
a aa 200 2006-7-12
b bb 200 2006-7-12
a aa 300 2006-7-15
时间 aa-a bb-b 合计2006-6合计 500 200 7002006-7合计 500 200 700
a aa 200 2006-6-12
b bb 200 2006-6-12
a aa 300 2006-6-15
a aa 200 2006-7-12
b bb 200 2006-7-12
a aa 300 2006-7-15
时间 aa-a bb-b 合计2006-6合计 500 200 7002006-7合计 500 200 700
sum(case 项目 when 'aa' then 数量 else 0 end) 'aa',
sum(case 项目 when 'bb' then 数量 else 0 end) 'bb',
sum(数量) 合计
from tb
group by convert(varchar(7),时间,120)+'合计',客户
sum(case fmonth when 8 then fqckc else 0 end) [8进],
sum(case fmonth when 8 then fqmkc else 0 end) [8出],
sum(case fmonth when 9 then fqckc else 0 end) [9进],
sum(case fmonth when 9 then fqmkc else 0 end) [9出]
from tb_pjjctj
group by fpjdm,fyear
insert into tb values('a', 'aa', 200, '2006-6-12')
insert into tb values('b', 'bb', 200, '2006-6-12')
insert into tb values('a', 'aa', 300, '2006-6-15')
insert into tb values('a', 'aa', 200, '2006-7-12')
insert into tb values('b', 'bb', 200, '2006-7-12')
insert into tb values('a', 'aa', 300, '2006-7-15')
godeclare @sql varchar(8000)
set @sql = ''
select @sql = @sql +',sum(case 项目 when '''+项目+''' then 数量 else 0 end) as ['+项目+'-'+客户+']'
from (select distinct 项目,客户 from tb) aaexec ('select convert(varchar(7),时间,120) as [时间]'+@sql +
',sum(数量) as [合计] from tb group by convert(varchar(7),时间,120)')drop table tb/*
时间 aa-a bb-b 合计
------- ----------- ----------- -----------
2006-06 500 200 700
2006-07 500 200 700*/
[/code]
sum(case 项目 when 'aa ' then 数量 else 0 end) 'aa ',
sum(case 项目 when 'bb ' then 数量 else 0 end) 'bb ',
sum(数量) 合计
from table1
group by convert(varchar(7),table1.时间,120)+ '合计'