create table test(厂家 varchar(5),月份 int , 产品 varchar(5), 汇总 int)
insert test
select '厂A', 6, '药品' ,100 union all
select '厂B', 7, '器材' ,110 union all
select '厂A', 7, '药品' ,120 union all
select '厂C', 6, '器材' ,130 union all
select '厂C', 6, '药品' ,140
declare @sql varchar(1000)
set @sql='select 厂家,月份'
select @sql=@sql+','+产品+'=sum(case 产品 when '''+产品+''' then 汇总 else 0 end)'
from test group by 产品
set @sql=@sql+',''汇总''=sum(汇总) from test group by 厂家,月份 order by 厂家'