Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выбрать периодически встречающиеся события.  [new]
gloryk62
Member

Откуда: СПб
Сообщений: 108
Есть тбл событий. Задан временной промежуток. Необходимо выбрать события, имеющие место быть хотя бы 1 раз за выбранный интервал( час, сутки, неделя, месяц) в заданном временном промежутке. Помогите, пожалуйста, с запросом... Или ссылку на подобную тему подскажите ...
24 янв 14, 13:54    [15462750]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать периодически встречающиеся события.  [new]
Glory
Member

Откуда:
Сообщений: 104751
gloryk62
Необходимо выбрать события, имеющие место быть хотя бы 1 раз за выбранный интервал( час, сутки, неделя, месяц) в заданном временном промежутке.

SELECT * FROM тбл событий WHERE [поле со датойвремя события] between [начало воременного промежутка] and [конец временного промежутка]
24 янв 14, 13:58    [15462785]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать периодически встречающиеся события.  [new]
gloryk62
Member

Откуда: СПб
Сообщений: 108
Glory,
наверное, я плохо сформулировал вопрос. Например, выбрать только те события, которые были ежедневно в прошлом месяце...
24 янв 14, 14:05    [15462840]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать периодически встречающиеся события.  [new]
Glory
Member

Откуда:
Сообщений: 104751
gloryk62
Glory,
наверное, я плохо сформулировал вопрос. Например, выбрать только те события, которые были ежедневно в прошлом месяце...

Для этого нужна таблица со всеми " час, сутки, неделя, месяц"
24 янв 14, 14:07    [15462862]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать периодически встречающиеся события.  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
gloryk62,

во-первых, нужен датасет со всеми днями в прошлом месяце.
Во-вторых, надо выбрать событие, для которого не существует дня, когда его не было
"Не существует" и "не было" - это NOT EXISTS().
24 янв 14, 14:10    [15462884]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать периодически встречающиеся события.  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
Ну строго говоря, можно обойтись без датасета со всеми датами - достаточно знать (для конкретной задачи), сколько было дней в прошлом месяце, и писать что-то типа
select event
from EventTable
where date between ...
group by event
having count(distinct day(date)) = @N -- число дней в месяце 

Но если писать универсальный запрос для разных интервалов - датасет с датами предпочтительнее, конечно
24 янв 14, 14:22    [15462958]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать периодически встречающиеся события.  [new]
gloryk62
Member

Откуда: СПб
Сообщений: 108
Кот Матроскин,
спасибо БОЛЬШОЕ ВСЕМ.
24 янв 14, 14:32    [15463025]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить