Апдейт поля таблицы по нескольким условиям

Даны таблицы:

HEADING

введите сюда описание изображения

POS

введите сюда описание изображения

JOURNAL

введите сюда описание изображения

HEADING и POS связаны по id, POS и JOURNAL по item

Условия: Для документов таблицы HEADING, где code=11, а date не больше 10 дней от текущей, проапдейтить значение таблицы POS столбца id_journal, значением из таблицы JOURNAL по условию POS.item=JOURNAL.item, JOURNAL.count >= POS.KOL, если id_journal.JOURNAL несколько, айдейтить значением начиная с самой поздней даты ( JOURNAL.date)

Отдельно, все необходимое нахожу, но не могу все в 1 запрос составить.. Непонятно, что тут использовать.

Вообще у меня проблема, как это все вместе скомпоновать. По отдельности:

  1. Поиск документов согласно условиям

select id from HEADING where code = '11' and date between now() - interval '10 day' and now()

result: 23

2)Поиск нужного id_journal для апдейта. Тут не понял как цепляться к самой старой дате, ищу минимальное подходящее значение для id_journal

select min(j.id_journal) from POS p left join JOURNAL j on p.item=j.item where p.id ='23' and p.KOL <= j.count

result:5503

  1. В конечном итоге мне надо по всем полученным данным и условиям, выполнить апдейт update POS set id_journal ='5503' where id ='23' and item ='843'

Результат изменений должен быть в таблице POS

введите сюда описание изображения


Ответы (0 шт):