当前位置:编程学习 > C#/ASP.NET >>

在线人数统计 sql

--在线人数统计走势图需求
据RecordUserEnter(userid,logintime) RecordUserLeave(userid,quittime)两个表得到(时间,在线人数)
如:据时间段timestart到timeend
(1)、如果时间段间隔在2个月之内效果如下:
时间         在线人数
2009-11-01   3
2009-11-02   5
2009-11-03   4
2009-11-04   0
2009-11-05   8
2009-11-06   9
(2)、如果时间段间隔在2个月之上小于2年效果如下:
时间         在线人数
2009-01       31
2009-02       523
2009-03       44
2009-04       75
2009-05       85
2009-06       92
(3)、如果时间段间隔在2年之上效果如下:
时间         在线人数
2001      0
2002      0
2003      440
2004      750
2005      850
2006      920
注:如果哪一天或哪一月或哪一年根本就没有人在线也就是没有记录,但也要统计那个时间的在线人数
像这样的sql存储过程怎么写啊? --------------------编程问答-------------------- 没有的值可以在后台代码中得到查询结果后添加,在SQL中不知道怎么弄 --------------------编程问答-------------------- 对咯这个是我写的一个sql,能够达到
时间        在线人数 
2009-11-01  3 
2009-11-02  5 
2009-11-03  4 
2009-11-04  0 
2009-11-05  8 
2009-11-06  9 
这个效果,希望大家帮我完善下
create table Info
(
tm datetime,
sm int
)
go
insert info
select '2009-01-01',3 union all
select '2009-01-02',10 union all
select '2009-01-02',5 union all
select '2009-01-02',7

alter procedure getDateInfo
(
@beginDate datetime,
@endDate datetime
)
as
create table #temp
(
ll datetime
)

while(@beginDate<=@endDate)
begin
insert into #temp values(@beginDate)
set @beginDate=DATEADD(d,1,@beginDate)
end

select a.ll,count(b.sm) from #temp as a left join Info as b on a.ll=b.tm group by a.ll
go

getDateInfo '2009-01-01','2009-02-10'
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,