By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE table_name (ACCOUNT, "START", "END") AS
SELECT 1, DATE '2021-09-30', DATE '2021-10-28' FROM DUAL UNION ALL
SELECT 1, DATE '2021-07-21', DATE '2021-08-20' FROM DUAL UNION ALL
SELECT 2, DATE '2021-07-30', DATE '2021-10-28' FROM DUAL UNION ALL
SELECT 2, DATE '2021-07-01', DATE '2021-08-20' FROM DUAL;
4 rows affected
SELECT t.*,
CASE
WHEN EXISTS(SELECT 1
FROM table_name x
WHERE x."START" < t."END"
AND x."END" > t."START"
AND x.account = t.account
AND x.ROWID != t.ROWID)
THEN 'YES'
ELSE 'NO'
END AS clashing
FROM table_name t
ACCOUNT | START | END | CLASHING |
---|---|---|---|
1 | 30-SEP-21 | 28-OCT-21 | NO |
1 | 21-JUL-21 | 20-AUG-21 | NO |
2 | 30-JUL-21 | 28-OCT-21 | YES |
2 | 01-JUL-21 | 20-AUG-21 | YES |