sql动态行转列的两种方法
第一种方法: end month,Quality from ( select Url,DATENAME(M,AuditingTime)Month,SUM(Quality) Quality from tb_order as a left join tb_WebSiteInfo as b on a.WebSiteInfoID=b.ID left join tb_OrderList as c on c.OrderID=a.ID where AuditingTime>'2013-01-01' and b.ID>0 and Auditing=2 group by Url,AuditingTime) )as h ) as hh pivot ( sum(Quality) for month in([1月],[2月],[3月],[4月],[5月],[6月],[7月],[8月],[9月],[10月],[11月],[12月])) as a select @sql = isnull(@sql + ',','') + '['+CONVERT(varchar(7),AuditingTime,20)+']' from tb_order as a left join tb_WebSiteInfo as b on a.WebSiteInfoID=b.ID left join tb_OrderList as c on c.OrderID=a.ID where AuditingTime>'2013-01-01' and b.ID>0 and Auditing=2 group by CONVERT(varchar(7),20) print @sql declare @sql2 varchar(8000)='' set @sql2=' select *from ( select Url,CONVERT(varchar(7),20) AuditingTime,SUM(Quality) Quality from tb_order as a left join tb_WebSiteInfo as b on a.WebSiteInfoID=b.ID left join tb_OrderList as c on c.OrderID=a.ID where b.ID>0 and Auditing=2 group by Url,20) ) as hh pivot (sum(Quality) for AuditingTime in (' + @sql + ')) b' print @sql2 exec(@sql2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sqlserver 2008支持行合并语法
- sqlserver2008日志压缩
- sql – 有没有办法将表名指定为字符串?
- 在LINQ查询中删除多条记录的最佳方法?
- sql-server-2008 – 如何在没有Management Studio的情况下更
- sql-server – SQL Server 2008管理需要多少工作?
- sql-server – SQLServerException:执行SQL时语句未返回结
- 如何在Sql Server 2000中的表上删除所有外键约束?
- SQL Server DBCC CHECKIDENT 重置数据库标识列从某一数值开
- sql-server – 保护SQL Server 2008中DBA的敏感信息