2014-05-12 2 views
0

인 경우 ON-Statement에 테이블 별칭을 사용할 수 있습니까?Oracle 테이블 별칭이

SQL 문 :

SELECT XMLELEMENT("row", XMLATTRIBUTES(rownum as "order"), 
    (
     SELECT 
      XMLAGG(XMLELEMENT("attribute",XMLATTRIBUTES(z as "identifier"))) 
     FROM b 
     LEFT JOIN c 
      ON c.ID = b.cID 
      AND c.example = table_alias.example 
    ) 
) 
FROM 
(
    SELECT example FROM x ORDER BY y 
) table_alias 

내가 table_alias.example 잘못된 식별자라는 오류를 받고 있어요. c.example = table_alias.example을 WHERE 문으로 이동하면 작동하지만 물론 잘못된 결과가 나옵니다.

누구나 아이디어가 있으십니까?

TY frgtv10

+0

을 시도합니다. –

+0

은 사본 과거 결함이어야합니다. – frgtv10

+0

대신 XMLAGG (XMLELEMENT ("속성", XMLATTRIBUTES (z는 "식별자")))'가되어야합니까? –

답변

-1

난 당신이 필요 이상의 오른쪽 괄호 더 생각이

SELECT XMLELEMENT("row", XMLATTRIBUTES(rownum as "order"), 
     (SELECT XMLAGG(XMLELEMENT("attribute"),XMLATTRIBUTES(z as "identifier"))) 
      FROM b, c, x 
      where c.ID = b.cID(+) AND c.example = x.example 
     ) 
    ) from dual 
관련 문제