SQLSERVER 动态sql行转列原创
金蝶云社区-何某人
何某人
3人赞赏了该文章 1057次浏览 未经作者许可,禁止转载编辑于2021年08月18日 14:45:58

#data 为报表临时表

#odata1 为临时表

@InsertItem@ 为插入的列,例如:F_103444,F_103445,F_103446,F_103447,F_103448,

代码如下:

declare @sql varchar(8000)

set @sql = 'INSERT INTO #data(FIDENTITYID,FDEPTNAME,@InsertItem@FDEPRSUM)'
set @sql += 'select ROW_NUMBER() OVER(order by FDEPTNAME) FIDENTITYID,FDEPTNAME FDEPTNAME'
select @sql = @sql + ' , max(case FASSETTYPEGROUPID when ''' + FASSETTYPEGROUPID + ''' then FDRFUND else 0 end) [F_' + FASSETTYPEGROUPID + ']'
from (select distinct FASSETTYPEGROUPID from #odata1) as a

set @sql = @sql + ' , sum(FDRFUND) FDEPRSUM from #odata1 group by FDEPTNAME'

EXECUTE(@sql)

赞 3