select * from t_test
-------静态实现方式-----
select ID, sum([仓库1])[仓库1],SUM([仓库2])[仓库2] from ( --转置完之后再汇总
select ID,[仓库1],[仓库2] from t_test --转置
pivot (sum(inQty) for Stock in ([仓库1],[仓库2])) as A
) aa
group by ID
--------end-----------
-------动态实现方式-----------
declare @sql varchar(500),
@sumCond varchar(500),
@cond varchar(500)
set @sumCond='sum([仓库1]) as [仓库1] ,sum([仓库2]) as [仓库2]'
set @cond ='[仓库1],[仓库2]'
set @sql ='select ID,'+@sumCond+' from(
select ID,'+@cond+' from t_test
pivot (sum(inQty) for Stock in ('+@cond+')) as a
) aa Group by ID'
print(@sql)
exec(@sql)
------------end----------------