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

Откуда:
Сообщений: 891
Здравствуйте.
Помогите пожалуйста написать запрос. Есть таблица:

UserIDStartTimeEndTime
1472018-12-01 18:00:00.0002018-12-01 21:00:00.000
1472018-12-01 18:30:00.0002018-12-01 20:30:00.000
1472018-12-04 19:00:00.0002018-12-04 20:50:00.000
2072018-11-03 20:00:00.0002018-11-03 20:30:00.000
2082018-12-02 20:00:00.0002018-12-03 02:30:00.000
2082018-12-02 21:00:00.0002018-12-03 01:00:00.000


нужно написать select, котороый бы в подгруппах по UserID возвращал бы только те записи записи, где интервал StartTime - EndTime
"вмещает в себя" другие временные итервалы по UserID.

Т.е. к примеру: среди двух записей содержащими
2018-12-01 18:00:00 - 2018-12-01 21:00:00
и
2018-12-01 18:30:00 - 2018-12-01 20:30:00

должна остаться первая запись, т.к. интервал второй записи входит в интервал первой.

Вот что должно получиться:
UserIDStartTimeEndTime
1472018-12-01 18:00:00.0002018-12-01 21:00:00.000
1472018-12-04 19:00:00.0002018-12-04 20:50:00.000
2072018-11-03 20:00:00.0002018-11-03 20:30:00.000
2082018-12-02 20:00:00.0002018-12-03 02:30:00.000
13 дек 18, 08:57    [21762393]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом..  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
Select * From Таблица a
Where Not Exists (Select 1 From Таблица b Where a.User_Id = b.User ID and a.StartTime>b.StartTime and a.EndTime<b.EndTime)
13 дек 18, 09:10    [21762407]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом..  [new]
MAULER
Member

Откуда:
Сообщений: 891
Kopelly,

Проверяю. Но очень похоже на правду! Спасибо Вам.
13 дек 18, 09:34    [21762438]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить