sqlserver统计2

sqlserver统计二???????? 接上一篇,数据统计一般都会按照日期进行统计。目标格式基本上如下:名称url2011-04

sqlserver统计二

???????? 接上一篇,数据统计一般都会按照日期进行统计。目标格式基本上如下:

名称
url
2011-04-01
2011-04-02
2011-04-03
a
a.com
100111
100231
101321

???????? 这样会涉及到时间的获取,以及行列的转换,首先时间问题。将yyyy-MM-dd hh:mm:ss这种在数据库里面保存的格式,转化为天。再进行统计,得到一期目标数据格式如下:

?

名称
时间
次数
a
2011-04-01100111a2011-04-02100231a2011-04-03101321b
.......
............

?

???????? 得到一期目标格式,就是只需要日期处理,直接上sql.

select service,[2011-04-01],[2011-04-02],[2011-04-03] from(select sl.service,CONVERT(varchar(10),sl.access_date,23) adate , count(*) as  num from dbo.service_log  sl where sl.access_date between '2011-04-01' and '2011-04-30' group by CONVERT(varchar(10),sl.access_date,23),sl.service) spivot (sum(s.num) for s.adate in ([2011-04-01],[2011-04-02],[2011-04-03])) as t
?

?