select 商品编号,sum(case when 商品类型='1' then 商品数量 else 0 end ) 商品数量1 ,
sum(case when 商品类型='2' then 商品数量 else 0 end ) 商品数量2,
sum(case when 商品类型='3' then 商品数量 else 0 end ) 商品数量3
from table
group by 商品编号
sum(case when 商品类型='2' then 商品数量 else 0 end ) 商品数量2,
sum(case when 商品类型='3' then 商品数量 else 0 end ) 商品数量3
from table
group by 商品编号
sum(case when 商品类型='2' then 商品数量 else 0 end ) 商品数量2,
sum(case when 商品类型='3' then 商品数量 else 0 end ) 商品数量3
from table
group by 商品编号
declare @sql varchar(8000)
set @sql=''
select @sql = @sql + ',sum(case when 商品类型='''+ 商品类型 +''' then 商品数量 else 0 end ) ' + '商品数量'+ 商品类型
from (select distinct 商品类型from table )aa
exec('select 商品编号 '+ @sql + ' from table group by 商品编号')
set @sql = 'select 商品编号,'
select @sql = @sql + 'sum(case 商品类型 when '''+商品类型+'''
then 商品数量 else 0 end) 商品数量'+a+','
from (select distinct 商品类型 from 表) as aselect @sql = left(@sql,len(@sql)-1) + ' from 表 group by 商品类型'exec(@sql)
declare @sql varchar(8000)
set @sql=''
select @sql = @sql + ',sum(case when 商品类型='''+ 商品类型 +''' then 商品数量 else 0 end ) ' + '商品数量'+ cast(商品类型 as varchar(10))
from (select distinct 商品类型from table )aa
exec('select 商品编号 '+ @sql + ' from table group by 商品编号')
declare @sql varchar(8000),@i int
set @sql='select 商品编号'
set @i=0
select @i=@i+1,@sql = @sql + ',sum(case when convert(varchar,商品类型)='''+ convert(varchar,商品类)型 +''' then 商品数量 else 0 end ) [商品数量'+convert(varchar,@i)+']' from tableName
select @sql = @sql+' into #a from tableName group by 商品编号'
exec (@sql+' select * from #a')
sum(case when 商品类型='2' then 商品数量 else 0 end ) 商品数量2,
sum(case when 商品类型='3' then 商品数量 else 0 end ) 商品数量3
from table
group by 商品编号
sum(case when 商品类型='2' then 商品数量 else 0 end ) 商品数量2
from table
group by 商品编号
insert into #a values ('00001',2,20)
insert into #a values ('00002',1,10)
insert into #a values ('00003',1,10)
insert into #a values ('00003',2,20)
insert into #a values ('00004',1,10)
insert into #a values ('00004',3,30)declare @sql varchar(8000),@i int
set @sql='select 商品编号'
set @i=0
select @i=@i+1,@sql = @sql + ',sum(case when convert(varchar(20),商品类型)='''+convert(varchar(20),商品类型)+''' then 商品数量 else 0 end) [商品数量'+convert(varchar,@i)+']' from #a
select @sql = @sql+' into #b from #a group by 商品编号'
exec (@sql+' select * from #b')
drop table #a