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

Что здесь не так?

0 ответов

Другие вопросы по тегам