sql动态行转列的两种方法
第一种方法:
select *from ( select Url,case when Month=01 then '1月' when Month=02 then '2月' when Month=03 then '3月' when Month=04 then '4月' when Month=05 then '5月' when Month=06 then '6月' when Month=07 then '7月' when Month=08 then '8月' when Month=09 then '9月' when Month=10 then ' 10月' when Month=11 then '11月' when Month=12 then ' 12月'
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,DATENAME(M,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
第二种方法:
declare @sql varchar(8000)
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),AuditingTime,20) print @sql declare @sql2 varchar(8000)='' set @sql2=' select *from (
select Url, CONVERT(varchar(7),AuditingTime,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, CONVERT(varchar(7),AuditingTime,20)
) as hh pivot (sum(Quality) for AuditingTime in (' + @sql + ')) b'
print @sql2
exec(@sql2)
相关文章
如何使用Visual Studio 2010在数据库中生成随机测试数据
本文主要介绍Visual Studio 2010的Data Generation数据生成器的使用方法,需要的朋友可以参考下2014-08-08
DataGrip 格式化SQL的实现方法(自定义Sql格式化)
DataGrip 是 JetBrains 发布的多引擎数据库环境,本文主要介绍了如何自定义Sql格式化风格,具有一定的参考价值,感兴趣的可以了解一下2021-09-09
SQL Server2012附加数据库5120错误(拒绝访问)的解决方法
在附加数据库的时候会遇到错误代码为5120等的错误,提示为拒绝访问,下面这篇文章主要给大家介绍了关于SQL Server2012附加数据库5120错误(拒绝访问)的解决方法,需要的朋友可以参考下2023-05-05
sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句
sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句...2007-08-08
使用Navicat从SQL Server导入表数据到MySQL的操作流程
这篇文章主要介绍了使用Navicat从SQL Server导入表数据到MySQL的操作流程,文中通过图文结合的方式讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下2024-12-12
深入SQLServer中ISNULL与NULLIF的使用详解
本篇文章是对SQLServer中ISNULL与NULLIF的使用进行了详细分析介绍,需要的朋友参考下2013-06-06


最新评论