Проверка всех записей, которые возвращаются из базы данных, чтобы увидеть, соответствуют ли определенные записи критериям.Если нет, то отфильтруйте эти записи - PullRequest
0 голосов
/ 08 октября 2018

Оставайтесь со мной в объяснении.Я прошу прощения за логику, необходимую здесь, но это то, что нужно.

Я верну все «события» из таблицы EVENT из простого запроса к базе данных.Однако из этого я хотел бы затем проверить все записи и посмотреть, попадают ли они в определенные критерии.

event_id |   status       |     last_modified
1        |  pending       |     "2018-09-07"
2        |  approved      |     "2018-09-07"
3        |  cancelled     |     "2018-06-02"
4        |  approved      |     "2018-09-02"
5        |  cancelled     |     "2018-10-08"

Это только основные данные, которые будут возвращены.Однако, учитывая приведенные выше данные, я хочу вернуть все данные, но если событие «отменено», а НЕ попадает в течение 36 часов до сегодняшнего дня [для этого примера текущая временная метка будет 2018/10/08], то это будет исключено изобщий список записей, возвращаемых запросом.

В приведенном выше списке возвращенных записей событие № 3 не будет возвращено, поскольку его последнее изменение не было в течение 36 часов после текущей / текущей отметки времени.

Это очень неловкое решение, прошу прощения.Я не хочу фильтровать предложение where, так как это не вернет все остальные необходимые записи.

Заранее благодарим за любые советы.

1 Ответ

0 голосов
/ 08 октября 2018

Это то, что вы хотите?

select e.*
from events e
where e.status <> 'cancelled' or e.last_modified > current_timestamp - interval '36 hour';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...