Вы можете использовать следующее, используя дополнительный выбор, чтобы получить текущее / последнее задание, и EXISTS
, чтобы проверить, работал ли сотрудник в качестве торгового представителя в прошлом:
SELECT jh.*
FROM job_history jh INNER JOIN (
SELECT EMPLOYEE_ID, MAX(START_DATE) AS START_DATE
FROM job_history
GROUP BY EMPLOYEE_ID
) cj ON jh.EMPLOYEE_ID = cj.EMPLOYEE_ID AND jh.START_DATE = cj.START_DATE
WHERE EXISTS (
SELECT 1
FROM job_history
WHERE EMPLOYEE_ID = jh.EMPLOYEE_ID AND JOB_ID = 'SA_REP' AND START_DATE < jh.START_DATE
)
демо на dbfiddle.uk