SQL Oracle LEFT JOIN и SUBQUERY ошибка: ORA-00905: отсутствует ключевое слово - PullRequest
9 голосов
/ 03 апреля 2010

Обращаемся к вам за помощью по этому запросу Oracle. Это дает мне ошибку 2 «ORA-00905: отсутствует ключевое слово». Он работал нормально, прежде чем я добавил оператор LEFT JOIN. Очевидно, что она не будет доставлять информацию, как нам нужно, без оператора LEFT JOIN.

Пожалуйста, предоставьте любую помощь, чтобы узнать, какое ключевое слово отсутствует в этом запросе

Большое спасибо!:

Таблицы БД: DW.TICKETS DW.TICKET_ACTLOG

Таблица подзапросов: TABLE_RESOLVERS

SELECT 
    TO_CHAR(DW.TICKETS.RESOLVED_TIMESTAMP,'YYYY-MM-DD HH24:MI:SS') AS RESOLVED_DATE, 
    DW.TICKETS.SUBJECT, DW.TICKETS.OWNER_CORE_ID, 
    DW.TICKETS.TICKET_NUMBER, 
    TABLE_RESOLVERS.SUBMITTER AS RESOLVER_CORE_ID 

FROM DW.TICKETS 

LEFT JOIN
    (SELECT 
        TICKET_NUMBER,
        SUBMITTER 
    FROM DW.TICKET_ACTLOG 
    WHERE 
        TYPE = 'Final Resolution' AND 
        (SUBMITTER = 'B02666' OR 
        SUBMITTER = 'R66604') 
    ORDER BY CREATE_TIMESTAMP DESC 
    ) AS TABLE_RESOLVERS 

ON DW.TICKETS.TICKET_NUMBER = TABLE_RESOLVERS.TICKET_NUMBER  

WHERE 
    DW.TICKETS.RESOLVED_TIMESTAMP >= to_date('05-03-2010','dd-mm-yyyy') AND 
    DW.TICKETS.RESOLVED_TIMESTAMP < to_date('8-03-2010','dd-mm-yyyy') AND 
    DW.TICKETS.TICKET_NUMBER LIKE 'TCK%' AND 
    DW.TICKETS.TICKET_NUMBER IN 
        (SELECT TICKET_NUMBER 
        FROM DW.TICKET_ACTLOG 
        WHERE 
            (SUBMITTER = 'B02666' OR 
            SUBMITTER = 'R66604') 
        ) 

ORDER BY DW.TICKETS.CREATE_TIMESTAMP ASC

Ответы [ 2 ]

27 голосов
/ 03 апреля 2010

Мы не включаем AS при объявлении псевдонима таблицы. Вместо

    ) AS TABLE_RESOLVERS 

запись

   ) TABLE_RESOLVERS 
1 голос
/ 03 апреля 2010

Кажется, что "AS" является посторонним рядом с "AS TABLE_RESOLVERS"

...