У меня есть запрос, чтобы показать сотрудников за последние 30 дней. Сотрудники удаляются из отчета, если в столбце «Полученные документы» указано «Y» и прошло 30 дней. Но если в столбце «Полученные документы» указано «N» и прошло более 30 дней, они все равно должны быть в отчете. Я ищу запрос, который может иметь такой результат. Ниже приведен запрос, который у меня есть, но он не работает.
SELECT
a.emp_no,
a.date_of_leaving,
b.INTERNAL_DISPLAY_NAME AS NAME,
b.free_field1 as paperwork_received
FROM
emp_employed_time_row a
LEFT JOIN COMPANY_PERSON_ALL B
ON a.emp_no = b.emp_no
WHERE
emp_employed_time_api.get_date_of_leaving(a.company_id, a.emp_no, SYSDATE) BETWEEN trunc(SYSDATE,
'mm')-30/*current month*/ AND SYSDATE
AND emp_employed_time_api.get_date_of_leaving(a.company_id, a.emp_no, SYSDATE) BETWEEN trunc(SYSDATE,
'yyyy') AND SYSDATE
Текущие результаты введите описание изображения здесь Желаемые результаты введите описание изображения здесь
Таким образом, через 30 дней, Сотрудник A и B должны быть удалены из отчета, поскольку полученные документы - Y, но Сотрудник C должен все еще быть в отчете, поскольку полученные документы - N. После того, как полученные документы изменены на Y, то Сотрудник C удалено из отчета.