У меня есть таблица Oracle с именем users, со столбцами
name, location, organization, valid_from, valid_to, active.
Я пытаюсь сделать следующее: если есть две записи с одинаковым именем, местоположением, организацией, но с перекрытием интервалов valid_to, valid_from,установить активный статус каждой записи на «NOK».Вот как я пытаюсь это сделать:
UPDATE table SET active= 'NOK'
WHERE
(name, location, organization) IN (
SELECT t1.name, t1.location, t1.organization
FROM table t1
WHERE (valid_from > t1.valid_from and valid_to < t1.valid_to )
GROUP BY t1.name, t1.location, t1.organization
HAVING COUNT(*) > 1) ;
Но, похоже, это не то, что я хочу.Что я делаю не так?