Получи случайную криптовалюту за регистрацию!

Непересекающиеся отрезки Задача: при вставке в таблицу необхо | Oracle Developer👨🏻‍💻

Непересекающиеся отрезки

Задача: при вставке в таблицу необходимо проверять, что новая строка не пересекается по датам с уже имеющимися в разрезе клиента.

Необходимо написать запрос проверяющий пересечения.

create table client_tariff(
client_id number(38) not null,
date_from date not null,
date_till date not null
--...
);

insert into client_tariff values
(1, date'2022-01-01', date'2022-01-10');
insert into client_tariff values
(1, date'2022-02-01', date'2022-02-13');

Примеры:
c '2022-01-10' по '2022-01-12'-- ок
с '2022-01-10' по '2022-02-01'-- ok
c '2021-12-01' по '2022-01-02' - ошибка
с '2022-01-14' по '2022-02-03'-- ошибка

Визуально можно посмотреть на рисунке:
1-й отрезок пересекается своим окончанием с уже имеющимся;
2-й отрезок пересекается своим началом с окончанием имеющегося;
и так далее. варианты могут быть различные.
“все ок” - отрезки, которые не пересекаются с имеющимися.

Решение в четверг

#задача #яндекс