例如ID Uname downtime
1 小米 2011-01-12 2 小黑 2011-01-173 黎明 2011-02-24 小黑 2011-03-155 王菲 2011-07-3要得到是结果是:
用户 1月下载次数 2月下载次数 3月下载次数 ....12月下载次数 小米 1 0 0 0小黑 1 0 1 0
1 小米 2011-01-12 2 小黑 2011-01-173 黎明 2011-02-24 小黑 2011-03-155 王菲 2011-07-3要得到是结果是:
用户 1月下载次数 2月下载次数 3月下载次数 ....12月下载次数 小米 1 0 0 0小黑 1 0 1 0
解决方案 »
- SQL返回表中某字段值位于表中的哪行
- 关于效率的问题!
- 不用循环生成序列 (坛子里没找到答案)
- asp 访问 sqlserver 看看怎么解决?
- SQL 分级汇总问题
- 如何设计一个性能优良的数据库(散分喽,各抒己见)
- 请教存储过程问题
- 请问:我做的一个简体中文的网站要加做一个繁体版的,怎样使网页上显示的从数据库里动态
- 未将数据库进行备份,就用另外的备份文件来进行还原恢复了,现在想返回到未还原恢复之前的数据。
- 急急急,求求各位大佬看看这个sql Server2012的问题如何解决?服务器上链接不上去,sql Server配置管理器也无法启动。
- 关于去除重复数据问题
- slq server 通过时间的间隔来查询,求高手答疑
insert into tb select 1,'小米','2011-01-12'
insert into tb select 2,'小黑','2011-01-17'
insert into tb select 3,'黎明','2011-02-2'
insert into tb select 4,'小黑','2011-03-15'
insert into tb select 5,'王菲','2011-07-3'
go
declare @s nvarchar(max)
select @s=isnull(@s+',','')+'['+ dt +']' from(
select convert(varchar(7),dateadd(m,number,'2011-01-01'),120)dt from master..spt_values where type='p' and number<12
)t
exec('select Uname,'+@s+'from (select Uname,convert(varchar(7),downtime,120)dt from tb)t pivot (count(dt) for dt in('+@s+'))b')
/*
Uname 2011-01 2011-02 2011-03 2011-04 2011-05 2011-06 2011-07 2011-08 2011-09 2011-10 2011-11 2011-12
---------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
黎明 0 1 0 0 0 0 0 0 0 0 0 0
王菲 0 0 0 0 0 0 1 0 0 0 0 0
小黑 1 0 1 0 0 0 0 0 0 0 0 0
小米 1 0 0 0 0 0 0 0 0 0 0 0(4 行受影响)
*/
go
drop table tb