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

Откуда:
Сообщений: 80
здравствуйте!
есть таблица с периодами работы человека над разными задачами(Начало и конец работы)
человек может параллельно выполнять несколько задач
надо выбрать такие отрезки времени, когда человек был занят хотя бы одной задачей, исключив пересечения во времени.
То есть, если есть несколько пересекающихся во времени задач, надо выбрать минимальное время начала и максимальное время окончания из этих параллельных задач и "сплющить" их в одну запись.

CREATE TABLE #work
(
StartTime datetime,
EndTime datetime
)

insert into #work values ('20141101 08:00:00', '20141101 10:00:00')
insert into #work values ('20141101 08:10:00', '20141101 08:20:00')
insert into #work values ('20141101 09:40:00', '20141101 10:20:00')
insert into #work values ('20141101 09:00:00', '20141101 11:00:00')

insert into #work values ('20141101 12:00:00', '20141101 15:00:00')
insert into #work values ('20141101 13:00:00', '20141101 16:00:00')

-- на выходе надо получить всего 2 записи
--'20141101 08:00:00', '20141101 11:00:00'
--'20141101 12:00:00', '20141101 16:00:00'
21 ноя 14, 16:39    [16886567]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
figli
если есть несколько пересекающихся во времени задач

вот ето в окошко Поиск по сайту впечатайте - и будет вам счастье
21 ноя 14, 16:41    [16886585]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить