Как я могу объединить два запроса? - PullRequest
0 голосов
/ 14 мая 2009

Как я могу объединить эти два запроса (Query1-Query2)

Запрос1:


declare @date1 datetime,@date2 datetime , @COUNT INT , @countgap int
seLECT @date1='2009-05-11' , @date2 = '2009-05-12'
seLECT @countgap = 30 , @COUNT = 0 

select @date1 TARIH , @COUNT SIRA 
INTO #TMP
WHILE @date1 < @date2 
BEGIN 
    SELECT  @date1 = DATEadd(minute,@countgap,@date1) , @COUNT = @COUNT +1
    INSERT INTO #TMP
    select @date1 TARIH , @COUNT SIRA 
END
SELECT TARIH , SIRA , ( 0) VISITINGCOUNT 
FROM #TMP
ORDER BY SIRA



Запрос2:


select count(page) as TARIH,   
    (datepart(hour,Date)*60+datepart(minute,Date))/@countgap  as SIRA 
    from scr_SecuristLog  
    where Date between @date1  and  @date2 
    GROUP BY (datepart(hour,Date)*60+datepart(minute,Date))/@countgap

Смотри, пожалуйста, "СИРА". Этот столбец равен двум датируемым. Запустите Query1, посмотрите результат, пожалуйста. мне нужно внутреннее соединение двух столов

Запрос1 Результат


2009-05-11 00:00:00.000 0   0<br>
.<br>
.<br>
.<br>
.<br>
.<br>
2009-05-11 07:00:00.000 14  0<br>
2009-05-11 07:30:00.000 15  0<br>
2009-05-11 08:00:00.000 16  0<br>
2009-05-11 08:30:00.000 17  0<br>
2009-05-11 09:00:00.000 18  0<br>
2009-05-11 09:30:00.000 19  0<br>
2009-05-11 10:00:00.000 20  0<br>
2009-05-11 10:30:00.000 21  0<br>
2009-05-11 11:00:00.000 22  0<br>
2009-05-11 11:30:00.000 23  0<br>
2009-05-11 12:00:00.000 24  0<br>
2009-05-11 12:30:00.000 25  0<br>
2009-05-11 13:00:00.000 26  0<br>
2009-05-11 13:30:00.000 27  0<br>
2009-05-11 14:00:00.000 28  0<br>
2009-05-11 14:30:00.000 29  0<br>
2009-05-11 15:00:00.000 30  0<br>
2009-05-11 15:30:00.000 31  0<br>
2009-05-11 16:00:00.000 32  0<br>
2009-05-11 16:30:00.000 33  0<br>
2009-05-11 17:00:00.000 34  0<br>
2009-05-11 17:30:00.000 35  0<br>
2009-05-11 18:00:00.000 36  0<br>
.<br>
.<br>
.<br>

Запрос2 Результат


3   23
9   29
10  32
3   21
18  33

Мне нужен результат


2009-05-11 00:00:00.000 0   0<br>
....<br>
2009-05-11 07:00:00.000 14  0<br>
2009-05-11 07:30:00.000 15  0<br>
2009-05-11 08:00:00.000 16  0<br>
2009-05-11 08:30:00.000 17  0<br>
2009-05-11 09:00:00.000 18  33<br>
2009-05-11 09:30:00.000 19  0<br>
2009-05-11 10:00:00.000 20  0<br>
2009-05-11 10:30:00.000 21  0<br>
2009-05-11 11:00:00.000 22  0<br>
2009-05-11 11:30:00.000 23  3<br>
2009-05-11 12:00:00.000 24  0<br>
2009-05-11 12:30:00.000 25  0<br>
2009-05-11 13:00:00.000 26  0<br>
2009-05-11 13:30:00.000 27  0<br>
2009-05-11 14:00:00.000 28  0<br>
2009-05-11 14:30:00.000 29  9<br>
2009-05-11 15:00:00.000 30  0<br>
2009-05-11 15:30:00.000 31  0<br>
2009-05-11 16:00:00.000 32  10<br>
2009-05-11 16:30:00.000 33  0<br>
2009-05-11 17:00:00.000 34  0<br>
2009-05-11 17:30:00.000 35  0<br>
2009-05-11 18:00:00.000 36  0<br>
...<br>

1 Ответ

1 голос
/ 14 мая 2009

Немного сложно, так как имена полей не совпадают между таблицами ...

select t1.TARIH, t1.SIRA, VISITINGCOUNT = isnull(t2.SIRA, 0)
from #TMP t1
left join ( --paste query 2 here-- ) t2 on t2.TARIH = t1.SIRA
order by t1.SIRA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...