это продолжение вопроса из моего предыдущего поста
У меня есть следующий код, который будет запрашивать базу данных о том, когда наши агенты были зарегистрированы в определенный момент времени. Это хорошо работает для данного дня, но теперь мне нужно сделать это в течение выбранного периода времени. Я не уверен, где начать регулировать это! Мне нужны результаты, сгруппированные по дате и часу ... так что бы это выглядело следующим образом
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) )
есть идеи?
Большое спасибо