日期:2014-05-16  浏览次数:20437 次

求问怎么行转列查出来,最好是动态的,可能SQl里面还有聚合函数统计

求问怎么行转列查出来,最好是动态的
得出的结果:

------解决方案--------------------
DECLARE @sql NVARCHAR(MAX)
SELECT @sql = ISNULL(@sql , '') + N' max(case when paychannel_name = ''' + a.pNaychannel_name + N''' then price else 0 end) as ' + a.paychannel_name + N'支付 ,'  
              + N' max(case when paychannel_name) = ''' + a.paychannel_name + ''' then userorder_sucess_user else 0 end) as ' + a.paychannel_name + N'成功人数 ,' 
from  (SELECT DISTINCT paychannel_name FROM t1) AS a

SET @sql = N'select dateid , ' + LEFT(@sql , LEN(@sql) - 1) + N' from t1 group by dateid'
EXEC @sql

------解决方案--------------------
你这个按PayChannel_Name分组统计即可,不需要动态行转列啊。如果需要动态行转列,可以参考:
http://blog.csdn.net/dotnetstudio/article/details/9856745

记得帮我顶下文章哈,谢谢