SQL Oracle присоединение двух таблиц с разной сортировкой
Есть таблица с данными:
- Время создания запроса
- Время, когда сотрудник взял в работу
- Время, когда сотрудник закончил работу
- Номер запроса
open_dttm , valid_from_dttm , valid_to_dttm , claim_no
2020-02-01 09:00, 2020-02-01 13:00, 2020-02-01 14:00, sr-090134
Сотрудники должны брать задания в работу по приоритету от старых к новым. Идея была выгрузить таблицу с сортировкой по дате создания и присоединить таблицу по дате, когда сотрудник взял в работу, сравнить номера запросов и определить, кто косячит.
Нужно эту таблицу присоединить к самой себе, чтобы левая часть была с сортировкой по дате создания, а правая часть с сортировкой по времени, когда сотрудник взял в работу.
Ответы (1 шт):
Я все таки добавил идентификатор сотрудника. Также осталось не ясным, что требуется вывести: сотрудников; вопросы которые не взяли; вопросы которые взяли ошибочно.
На мой взгляд нагляднее делать через exists.
select
w.*
from claimes w
where exists
(select
null
from claimes c
where c.emp_id = w.emp_id
and c.open_dttm > w.open_dttm
and c.valid_from_dttm < w.valid_from_dttm)
Или
select
w.*
from claimes w,
claimes c
where c.emp_id = w.emp_id
and c.open_dttm > w.open_dttm
and c.valid_from_dttm < w.valid_from_dttm
Если вопросы нужны обоих типов, то условие с датами надо взять в скобки добавить
or (c.open_dttm < w.open_dttm
and c.valid_from_dttm > w.valid_from_dttm)