Этот код является фильтрацией на основе Oracle для текущего дня + - 2 дня:
SELECT
p.prdord PO,
q.actdat,
p.itmcod Finished_Item,
p.spccd1 Feeder_Item,
p.expqty Qty_Needed,
p.pendqty Amount_Pulled,
p.actqty Still_needed
FROM
porecipe p
INNER JOIN prdque q on p.prdord = q.prdord
WHERE
q.actdat BETWEEN SYSDATE-2 AND SYSDATE+2
ORDER BY p.prdord
Предполагается, что actdat - это ваш столбец "фактической даты". Если это не так, вставьте другое имя столбца в предложение WHERE. Имейте в виду, что МЕЖДУ включительно, поэтому, если этот отчет будет опубликован ровно в 18:00 3 января, он будет включать все записи с 18:00 с 1 по 18:00 5 января. Если запись, например, 6 вечера 5-го не должны быть включены, используйте, например, q.actdat > SYSDATE-2 AND q.actdat < SYSDATE+2
вместо
Редактировать
Вы попросили удалить дни выходных, добавьте это в предложение where:
AND TRUNC (q.actdat) - TRUNC (q.aftdat, 'IW') < 5
Это буквально удалит все результаты, если q.actdat s суббота или воскресенье
Если, тем не менее, вы хотите получить результаты между 2 рабочими днями и 2 рабочими днями вперед, это немного сложнее - прокомментируйте, если это так