错误:ORA-00905:将表连接到选择查询时缺少关键字

Posted

技术标签:

【中文标题】错误:ORA-00905:将表连接到选择查询时缺少关键字【英文标题】:Error: ORA-00905: missing keyword when joining table to a select query 【发布时间】:2018-04-10 17:14:31 【问题描述】:

我正在尝试将表链接到选择查询,但我收到错误:ORA-00905:缺少关键字。这是我写的oracle sql。

当我单独运行时,数据会拉出。当我尝试加入他们时,我得到了错误。我尝试根据在 Internet 上找到的一些帮助信息添加 Group BY 和 Order by,但仍然遇到相同的错误。

SELECT

AS_MASTER_NF.CONTRACT_NO
, AS_HISTORY_NF.AH_CONTRACT_NBR
, AS_MASTER_NF.ID
, AS_MASTER_NF.A_INVENT_DATE
, AS_MASTER_NF.A_DISP_DATE

FROM INFL_IDS.AS_MASTER_NF
LEFT JOIN (SELECT
               NVL(SUBSTR(ALTERNATE_ID, 0, INSTR(ALTERNATE_ID, '*')-1), ALTERNATE_ID) AS ASSET
              , AS_HISTORY_NF.AH_CONTRACT_NBR
               FROM INFL_IDS.AS_HISTORY_NF
               WHERE LENGTH (AH_CONTRACT_NBR)> 3) AS ASHISTORY
           ON INFL_IDS.AS_MASTER_NF.ID = INFL_IDS.ASHISTORY.ASSET

WHERE AS_MASTER_NF.A_INVENT_DATE IS NOT NULL

GROUP BY
AS_MASTER_NF.CONTRACT_NO
, AS_HISTORY_NF.AH_CONTRACT_NBR
, AS_MASTER_NF.ID
, AS_MASTER_NF.A_INVENT_DATE
, AS_MASTER_NF.A_DISP_DATE

ORDER BY
AS_MASTER_NF.CONTRACT_NO
, AS_HISTORY_NF.AH_CONTRACT_NBR
, AS_MASTER_NF.ID
, AS_MASTER_NF.A_INVENT_DATE
, AS_MASTER_NF.A_DISP_DATE

FETCH FIRST 20 ROWS ONLY

【问题讨论】:

你试过SQL> show err 来获取完整的错误列表吗? 【参考方案1】:

变化:

    ON INFL_IDS.AS_MASTER_NF.ID = INFL_IDS.ASHISTORY.ASSET

到:

    ON INFL_IDS.AS_MASTER_NF.ID = ASHISTORY.ASSET

因为,ASHISTORY 不是INFL_IDS 架构下的表或视图,而只是此 sql 中定义的子查询。

【讨论】:

以上是关于错误:ORA-00905:将表连接到选择查询时缺少关键字的主要内容,如果未能解决你的问题,请参考以下文章

如何将表连接到联合查询的结果

无法更正 Oracle 错误 ORA-00905 SQL 中缺少关键字

ORA-00905: 缺少关键字 Hibernate 查询

Oracle 错误:ORA-00905:缺少关键字

PL/SQL SELECT INTO 错误 (ORA-00905)

甲骨文。使用 case 语句时缺少关键字。错误 00905