日期:2014-05-18  浏览次数:20739 次

SQL行转列合计
如下动态表: 
帐户( as int), 商品编号(as int),数量(as real) 
101 1001 5 
102 1001 3 
101 1001 12
102 1001 9 

需显示:
商品编号 101 102
  1001 17 12
注意数据类型

------解决方案--------------------
SQL code
declare @sql varchar(8000)
set @sql = 'select 商品编号 '
select @sql = @sql + ' , sum(case 帐户 when ''' + ltrim(帐户) + ''' then 数量 else 0 end) [' + ltrim(帐户) + ']'
from (select distinct 帐户 from tb) as a
set @sql = @sql + ' from tb group by 商品编号'
exec(@sql)