Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   требуется помощь по минимизации SQL запроса (https://javascript.ru/forum/server/45168-trebuetsya-pomoshh-po-minimizacii-sql-zaprosa.html)

crack000 17.02.2014 17:52

требуется помощь по минимизации SQL запроса
 
Написал запрос количество людей конкретной организации прошедших через проходную за 1 день по двум интервалам времени.
Нужно сделать по каждому числу месяца по этим интервалам. Что можно придумать, чтобы не перечислять каждое число месяца?

[SRC sql]SET ANSI_NULLS OFF
declare @d1 as DATETIME ;
declare @d2 as DATETIME ;
declare @d3 as DATETIME ;
declare @d4 as DATETIME ;

select @d1 = '2013-10-01 04:00' -- начало утра
select @d2 = '2013-10-01 09:00' -- конец утра
select @d3 = '2013-10-01 16:00' -- начало вечера
select @d4 = '2013-10-01 20:30' -- конец вечера

Select Count(*) from pLogData Where HozOrgan in
(select Distinct ID from pList where section LIKE '60')
and TimeVal < @d2 AND TimeVal > @d1 and Event=32 and Mode = 1

Select Count(*) from pLogData Where HozOrgan in
(select Distinct ID from pList where section LIKE '60')
and TimeVal < @d4 AND TimeVal > @d3 and Event=32 and Mode = 1[/SRC]

ksa 18.02.2014 10:15

Цитата:

Сообщение от crack000
Что можно придумать, чтобы не перечислять каждое число месяца?

Как вариант - вложеный запрос.
1-вый выводит список дат
2-рой по этой дате количество людей
в сумме получится табличка вида
<дата><количество>

kostyanet 18.02.2014 13:38

Цитата:

Написал запрос количество людей конкретной организации прошедших через проходную за 1 день по двум интервалам времени.
Заметив слово количество думайте об агрегатных функциях и группировке. Вместо баяна типа

Select Count(*) from pLogData Where HozOrgan in
(select Distinct ID from pList where section LIKE '60')
and TimeVal < @d2 AND TimeVal > @d1 and Event=32 and Mode = 1

типа такого баяна

Select Count(*) from pLogData
where TimeVal < @d2 AND TimeVal > @d1 and Event=32 and Mode = 1
group by HozOrgan.ID having section LIKE '60'

Не видя DDL профтыкал по наитию.


Часовой пояс GMT +3, время: 21:28.