sql语句将行转换成列
declare @sql varchar(8000)
set @sql = 'select 物料代码'
select @sql = @sql + ',sum(case 地区 when '''+地区+''' then 数量 end) ['+地区+']'
+ ',sum(case 地区 when '''+地区+''' then 比率 end) [比率]'
from (select distinct 地区 from 表) as a
select @sql = @sql+' from 表 group by 物料代码'
exec(@sql)
简化如下:
select (select 物料代码 ,
sum(case 地区 when '地区' then 数量 end)[地区],
sum(case 地区 when '地区' then 比率 end)[比率]
from (select distinct 地区 from 表) as a
)
from 表 group by 物料代码