Мне нужно обновить столбец на основе результатов подзапроса. Если подзапрос возвращает результаты для этого столбца, тогда столбцы должны быть обновлены, запрос не возвращает никаких результатов для этого столбца, тогда мне нужно обновить 0.Обновить столбец в инструкции CASE с результатами postgres подзапроса
Я не знаю, где разместить подзапрос и как его объединить с оператором CASE. Это то, что я думал, но синтаксис неверен. Может ли кто-нибудь помочь, пожалуйста?
(SELECT datazones.ogc_fid, count(*) as total
FROM suppliersnew suppliers, datazone_report_resupply datazones
WHERE St_contains(datazones.geom, suppliers.geometry) AND (suppliers.status = 'Under construction' OR
suppliers.status = 'Unknown' OR suppliers.status = 'Operational') GROUP by datazones.ogc_fid ORDER BY total ASC) sources
UPDATE datazone_report_resupply
SET es_actual =
CASE
WHEN datazone_report_resupply.ogc_fid = sources.ogc_fid THEN sources.total
ELSE 0
END