Как я могу пропустить объединение этих #temp (данных по умолчанию) и другой таблицы? - PullRequest
2 голосов
/ 08 мая 2009

Я пытаюсь сгенерировать таблицу (см. ТАБЛИЦУ 1) с запросом (ниже).

CREATE TABLE #temp(
[VisitingCount] int,
[Time] nvarchar(50) )
DECLARE @DateNow DATETIME,@i int

SET @DateNow='00:00'
set @i=1;


    while(@i<1440)
begin
    set @DateNow=DATEADD(minute, 1, @DateNow)
    insert into #temp ([VisitingCount], [Time]) values(0, right(left(convert(nvarchar, @DateNow, 121), 16), 5))
    set @i=@i+1
end


select Count(VisitingCount) as VisitingCount,[Time]      
from   
#temp as Alltimes
left outer join   
( SELECT Page,Date,[user],      
        dbo.fn_GetActivityLogArranger2(Date,'hour') as [Time]
        FROM scr_SecuristLog      
) scr_SecuristLog      
on Alltimes.[Time] = scr_SecuristLog.[Time]
where      
        Date between '2009-04-30' and '2009-05-02'      
and      
        [user] in      
(       select USERNAME      
        from scr_CustomerAuthorities      
        where customerID=Convert(varchar,4)      
        and ID=Convert(varchar,43)      
)      
group by [Time] order by [Time] asc
drop table #temp




мне нужен этот результат (ниже). Это коды о входе в систему, но есть перерыв на обед между 12:30 и 13:30. Так что нет входа в нашу систему с 12:30 до 13:30. если вы нарисуете журнал Graghic. Вы можете увидеть символ "M" из-за разрыва в перерыве

My Dream TABLE 1 Результат:

Количество --------- Время ---------
10 ------------ 10: 30
22 ------------ 10: 40
30 ------------ 10: 50
44 ------------ 11: 00
.
.
.
.
.
0 ------------- 12: 30
0 ------------- 12: 40
0 ------------- 12: 50
0 ------------- 13: 00
.
.
.
.
.
10 ------------- 16: 00
21 ------------- 16: 10 * * тысяча тридцать-два 56 ------------- 16: 20
46 ------------- 16: 30

1 Ответ

2 голосов
/ 08 мая 2009

Это ваше предложение where, которое фильтрует через некоторое время. Вам нужно установить это предложение для внутреннего выбора:

select Count(VisitingCount) as VisitingCount,[Time]      
from   
#temp as Alltimes
left outer join   
( SELECT Page,Date,[user],      
        dbo.fn_GetActivityLogArranger2(Date,'hour') as [Time]
        FROM scr_SecuristLog      
        where Date between '2009-04-30' and '2009-05-02'      
        and      
        [user] in      
        (       select USERNAME      
                from scr_CustomerAuthorities      
                where customerID=Convert(varchar,4)      
                and ID=Convert(varchar,43)      
        )      
) scr_SecuristLog      
on Alltimes.[Time] = scr_SecuristLog.[Time]
group by [Time] order by [Time] asc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...