SQL Oracle LEFT JOIN 和 SUBQUERY 错误:ORA-00905:缺少关键字

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2568893/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 05:54:42  来源:igfitidea点击:

SQL Oracle LEFT JOIN and SUBQUERY error: ORA-00905: missing keyword

sqloraclesubqueryleft-joinora-00905

提问by Arturo

Asking for your help on this Oracle query. It's giving me the error 2 "ORA-00905: missing keyword". It was working fine before I added the LEFT JOIN statement. Obviously it won't deliver the information as we need it without the LEFT JOIN statement.

请求您对此 Oracle 查询的帮助。它给了我错误 2“ORA-00905:缺少关键字”。在我添加 LEFT JOIN 语句之前它工作正常。显然,如果没有 LEFT JOIN 语句,它将无法提供我们需要的信息。

Please provide any help to know which keyword is missing in this query

请提供任何帮助以了解此查询中缺少哪个关键字

Thanks a lot!:

非常感谢!:

DB Tables: DW.TICKETS DW.TICKET_ACTLOG

数据库表:DW.TICKETS DW.TICKET_ACTLOG

Subquery table: TABLE_RESOLVERS

子查询表: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

回答by APC

We don't include the ASwhen declaring a table alias. Instead of

我们AS在声明表别名时不包括。代替

    ) AS TABLE_RESOLVERS 

write

   ) TABLE_RESOLVERS 

回答by rep_movsd

It seems like the "AS" is extraneous near "AS TABLE_RESOLVERS"

似乎“AS”在“AS TABLE_RESOLVERS”附近是无关紧要的