Проблема в том, что к столбцам из внешнего запроса можно получить доступ только на один уровень подзапроса.Вы пытаетесь получить доступ к внешнему столбцу запроса на несколько уровней подзапроса вниз, поэтому вы получаете это сообщение об ошибке.
Чтобы избежать ошибки, необходимо переписать запрос так, чтобы ваш подзапрос был только на один уровень глубже -что-то вроде этого (не проверено, поскольку вы не предоставили никаких примеров данных и т. д.):
WITH assignment_info AS (SELECT ra.targetresourceid,
(SELECT MIN(t.startpointid) KEEP (dense_rank FIRST ORDER BY t.starttime1) task_startpointid
FROM task t
WHERE t.id = ra.targetresourceid) task_startpointid
FROM resourceassignment ra
INNER JOIN vehicle v
ON v.id = ra.sourceresourceid
INNER JOIN unit u
ON v.unitid = u.id)
SELECT ai.targetresourceid,
(SELECT gn.name
FROM geonode gn
WHERE gn.id = ai.task_startpointid) departurenodename
FROM assignment_info;
Я не включил ваше предложение GROUP BY ra.targetresourceid
, так как агрегатов нет, и ваш запрос будетпотерпеть неудачу из-за этого.Возможно, вы хотели использовать DISTINCT
в списке выбора?