当前位置: 代码迷 >> 报表 >> 进销存中的复杂表格常见的动态行转列技巧
  详细解决方案

进销存中的复杂表格常见的动态行转列技巧

热度:458   发布时间:2016-04-29 01:50:33.0
进销存中的复杂报表常见的动态行转列技巧

 

1.半成品结果集。

 

2.最终效果:

 

3.SQL

 

--动态行转列
 DECLARE @subSql nvarchar(MAX)
SET @subSql = 'select Row_Number() over(order by agentbigarea,agentname) as RowNumber            ,
AgentBigArea as AgentBigArea,AgentName'
SELECT @subSql = @subSql + ',SUM(case wrdname+goodattrvalgroup when ''' + wrdname+goodattrvalgroup+ ''' then
 quantity else 0 end) as [' + wrdname+'|'+goodattrvalgroup + '|销售]            ,SUM(case wrdname+goodattrvalgroup
  when ''' + wrdname+goodattrvalgroup+ ''' then quantity1 else 0 end) as [' + wrdname+'|'+goodattrvalgroup + '|库存]           
   ,SUM(case wrdname+goodattrvalgroup when ''' + wrdname+goodattrvalgroup+ ''' then quantity2 else 0 end) as
    [' + wrdname+'|'+goodattrvalgroup + '|周转]'
    
FROM
  (SELECT TOP 10000 wrdname,
                    goodattrvalgroup
   FROM #tempEnd
   GROUP BY goodattrvalgroup,
            wrdname
   ORDER BY goodattrvalgroup,
            Max(wrdid)) AS a
SET @subSql = @subSql + ' from #tempEnd group by AgentBigArea,agentname' print @subSql EXEC (@subSql)

 

  相关解决方案