У меня есть таблица встреч. Мне нужно проверить, что никакая дата между validfrom
и validuntil
не конфликтует с другой записью, у которой есть дата, которая может быть частично или полностью между датой другой записи.
например. на рисунке ниже дата 2 записи 08.02.2019 - 05.02.2019 находится в конфликте с датой 3 записи 03.02.2019 - 09.02.2019, поскольку дни 08.02.2019 и 09.02.2017 находятся в диапазоне 3-й записи.
Как бы я мог составить таблицу результатов, в которой указаны все конфликтующие назначения для каждого сотрудника?
Другими словами, я хочу это:
Вот основная суть запроса:
select sa.staffid,sa.appointmentid,a.validfrom,a.validuntil
from staffappointment sa
join staff s on s.id = sa.staffid
join appointment a on a.id = sa.appointmentid
where .....