Отфильтруйте результаты по дате, сложив и вычтя на 2 дня от даты выполнения - PullRequest
0 голосов
/ 10 июля 2019

Я новичок в SQL. Я создал скрипт в SQL Developer, который затем преобразовал в форму Excel VBA, чтобы создать интерактивный инструмент для извлечения этого конкретного отчета по требованию. Работает отлично!

Моя проблема в том, что я не могу отфильтровать результаты дат, чтобы показать только даты за 2 дня до фактической даты и, наконец, через 2 дня после фактической даты запуска отчета.

Код SQL:

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 join
     prdque q
     on p.prdord = q.prdord 
order by p.prdord

1 Ответ

0 голосов
/ 10 июля 2019

Этот код является фильтрацией на основе 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 рабочими днями вперед, это немного сложнее - прокомментируйте, если это так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...