sql多表行转列、级联行转列示例代码
更新时间:2014年03月21日 15:33:30 作者:
这篇文章主要介绍了sql多表行转列、级联行转列示例代码,需要的朋友可以参考下
现有两表A,B
A表存储商品点击日志,B表存储商品
要求显示当天所有商品点击量列表并附带总数并按天排序
declare @sql varchar(2000)
set @sql='select CONVERT(varchar(100), a.[Time], 23) as 时间,count(b.title) as 总数'
select @sql =@sql+ ',sum(case b.title when '''+Title+''' then 1 else 0 end) as '+'['+Title+']'
from (select distinct title from B) as B
set @sql=@sql+' from A as a left join B as b on a.AId=B.Aid
group by CONVERT(varchar(100), a.[Time], 23) order by CONVERT(varchar(100), a.[Time], 23) desc'
exec(@sql)
显示结果
A表存储商品点击日志,B表存储商品
要求显示当天所有商品点击量列表并附带总数并按天排序
复制代码 代码如下:
declare @sql varchar(2000)
set @sql='select CONVERT(varchar(100), a.[Time], 23) as 时间,count(b.title) as 总数'
select @sql =@sql+ ',sum(case b.title when '''+Title+''' then 1 else 0 end) as '+'['+Title+']'
from (select distinct title from B) as B
set @sql=@sql+' from A as a left join B as b on a.AId=B.Aid
group by CONVERT(varchar(100), a.[Time], 23) order by CONVERT(varchar(100), a.[Time], 23) desc'
exec(@sql)
显示结果
时间 | 总数 | 商品1 | 商品2 | 商品3 |
2013-11-11 | 5 | 1 | 0 | 4 |
2013-11-10 | 13 | 2 | 11 | 1 |
相关文章
Windows下SQL Serever 2012彻底卸载删除教程
这篇文章主要为大家详细介绍了Windows下SQL Serever2012彻底卸载删除的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-03-03oracle忘记sys/system/scott用户密码的解决方法
一、忘记除SYS、SYSTEM用户之外的用户的登录密码。 二、忘记SYS用户,或者是SYSTEM用户的密码。 三、如果SYS,SYSTEM用户的密码都忘记或是丢失。 解决方法2013-03-03
最新评论