Я пытаюсь создать запрос в Toad для Oracle, который позволяет мне извлекать пользователей, у которых был разрыв между предыдущими и нынешними супервизорами более одного дня, с типом супервизора «Зарегистрированный руководитель».
Например, если у пользователя есть супервизор с конечной датой 20.10.2009, я ожидаю увидеть супервизора, назначенного на 21.10.2009. Если нет, то я хотел бы, чтобы эти исключения отображались, поскольку по состоянию на 22.10.2009 существует разрыв в один день. Если отображается дата «12/31/9999», это означает, что руководитель является текущим.
SELECT DISTINCT a.AssocID, a.SupervisorAssocID, TRUNC(a.StartDate),
TRUNC(a.EndDate), a.SupervisorType
FROM TableName a
INNER JOIN (SELECT AssocID, StartDate, EndDate
FROM TableName
) b ON a.AssocID = b.AssocID
WHERE a.StartDate != TRUNC(b.StartDate)
AND TRUNC(b.EndDate) > a.StartDate
AND a.StartDate != TRUNC(b.EndDate)
AND a.SupervisorType = 'Registered Principal';
Я ожидаю увидеть только тех пользователей, у которых между супервизорами был разрыв более одного дня.
