Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql循环结果/分组依据/排序_Sql_Sql Server_Sql Server 2000 - Fatal编程技术网

sql循环结果/分组依据/排序

sql循环结果/分组依据/排序,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,这是我上一篇文章的后续问题 我有下面的代码,它将查询我们的代理在特定时间登录的数据库。它在给定的一天内运行良好,但我现在需要在选定的时间段内执行它。我不知道从哪里开始调整这个!我需要按日期和时间分组的结果。。。因此,它将如下所示 date hour count 10/10/11 22 52 10/10/11 23 24 11/10/11 00 12 11/10/11 01 33 因此,所选范围内的每个日期都将显

这是我上一篇文章的后续问题

我有下面的代码,它将查询我们的代理在特定时间登录的数据库。它在给定的一天内运行良好,但我现在需要在选定的时间段内执行它。我不知道从哪里开始调整这个!我需要按日期和时间分组的结果。。。因此,它将如下所示

date        hour    count
10/10/11    22      52
10/10/11    23      24
11/10/11    00      12
11/10/11    01      33
因此,所选范围内的每个日期都将显示24小时周期

ALTER procedure [dbo].[LoggedOnCountByHour]
    @DayToCheck datetime,
    @HelplineID int
as

select  dateadd(hour, N.number, @DayToCheck) as [date_hour], 
        DATEPART(hh,dateadd(hour, N.number, @DayToCheck)) as [Hour],
        count(L.ExpertRecID) as [count of users]
from master..spt_values as N
  left outer join WorkDetail as L
    on L.KickedOffTime > dateadd(hour, N.number, @DayToCheck) and
       L.LoginTime < dateadd(hour, N.number + 1, @DayToCheck)
left join PoolMembership P on P.ExpertRecID = L.ExpertRecID

where N.Type = 'P' and
      N.Number between 0 and 23 and
      P.HelplinePoolID = @HelplineID 
group by dateadd(hour, N.number, @DayToCheck), DATEPART(hh,dateadd(hour, N.number, @DayToCheck) )
ALTER过程[dbo].[LoggedOnCountByHour]
@DayToCheck datetime,
@HelplineID int
作为
选择dateadd(hour,N.number,@DayToCheck)作为[日期\小时],
DATEPART(hh,dateadd(hour,N.number,@DayToCheck))为[hour],
计数(L.ExpertRecID)为[用户计数]
来自主..标准贯入度单位值为N
左外连接工作细节为L
在L.KickedOffTime>dateadd(小时、N.number、@DayToCheck)和
L.LoginTime
有什么想法吗!? 非常感谢

诸如此类(未经彻底测试)

alter过程[dbo].[LoggedOnCountByHour]
@FromDay检查日期时间,
@今天检查日期时间,
@HelplineID int
作为
选择dateadd(hour,N.number,@FromDayToCheck)作为[date\u hour],
DATEPART(hh,dateadd(hour,N.number,@FromDayToCheck))为[hour],
计数(L.ExpertRecID)为[用户计数]
来自主..标准贯入度单位值为N
左外连接工作细节为L
在L.KickedOffTime>dateadd(小时、N.number、@FromDayToCheck)和
L.LoginTimedateadd(hour,N.number+1,@FromDayToCheck)为SQL Server 2000添加了标记。我猜你还是用这个对吧?
alter procedure [dbo].[LoggedOnCountByHour]
        @FromDayToCheck datetime,
        @ToDayToCheck datetime,
        @HelplineID int
as

select  dateadd(hour, N.number, @FromDayToCheck) as [date_hour], 
        DATEPART(hh,dateadd(hour, N.number, @FromDayToCheck)) as [Hour],
        count(L.ExpertRecID) as [count of users]
from master..spt_values as N
  left outer join WorkDetail as L
    on L.KickedOffTime > dateadd(hour, N.number, @FromDayToCheck) and
       L.LoginTime < dateadd(hour, N.number + 1, @FromDayToCheck)
  left join PoolMembership P on P.ExpertRecID = L.ExpertRecID

where N.Type = 'P' and
      dateadd(hour, N.number + 1, @FromDayToCheck) <= @ToDayToCheck + 1 and
      P.HelplinePoolID = @HelplineID 
group by dateadd(hour, N.number, @FromDayToCheck), DATEPART(hh,dateadd(hour, N.number, @FromDayToCheck) )
order by [date_hour], [Hour]