ORA-00904 неверный идентификатор - но он существует
У меня странная проблема Oracle с идентификатором, который работает в другом подзапросе того же запроса и определен в части FROM основного выбора. select coalesce(typ...)
возвращает ровно одну строку и поле. Это рабочая версия запроса:
SELECT
v.id AS vid,
p.name AS pname,
v.name,
TO_CHAR(a.uploaddate,'YYYY-MM-DD HH24:MI:SS') AS scandate,
(SELECT COALESCE(sum(issuecount),0)
FROM foldercountcache fc, folder f
WHERE fc.folder_id = f.id
AND fc.projectversion_id = v.id AND f.name like '1 -%'
) as crit,
(SELECT COALESCE(typ,'No Issues') FROM
(SELECT ROWNUM AS r,cri,typ,n FROM
(SELECT f.name AS cri,i.issuetype AS typ, count(i.issuetype) as n
FROM issue i
LEFT JOIN folder f ON i.projectversion_id = f.projectversion_id AND i.folder_id = f.id
WHERE (i.projectversion_id = 15284846 AND f.name like '1%')
GROUP BY f.name,i.issuetype
ORDER BY cri, n DESC
)
) WHERE r=2
) AS top2
FROM projectversion v INNER JOIN project p ON p.id = v.project_id
INNER JOIN artifact a ON a.projectversion_id = v.id
WHERE a.uploaddate =
(SELECT max(uploaddate)
FROM artifact
WHERE projectversion_id = v.id AND status = 'PROCESS_COMPLETE'
)
ORDER BY p.name, v.name, a.uploaddate ;
Мне нужно заменить номер 15284846
с v.id
, Однако, делая это, я получаюORA-00904 "V"."ID" invalid identifier
ошибка от Oracle. Обратите внимание, что v.id
используется без проблем в первом подразделе, который начинается с select COALESCE
Что здесь не так?