簡體   English   中英

ORA-00918: 加入子查詢表時定義的列不明確

[英]ORA-00918: column ambiguous defined when joining subquery table

以下代碼有效:

SELECT b.AAZ002
FROM 
AE02 b
INNER JOIN t_aa10 aa10 
    ON (aa10.AAA100 = 'AA5515' AND  b.AA5515 = aa10.AAA102)

但是當我將 b 更改為子查詢表時,它會報告模棱兩可的列錯誤:

SELECT b.AAZ002 
FROM 
(
    select count(1) count1, a.BAZ379 , max(a.AB0111) AB0111, max(a.AA5515) AA5515, max(a.AAE011) AAE011
    , max(a.AAE035) AAE035, max(a.AAE036) AAE036, max(a.AAE012) AAE012, max(a.AAE012) AAE012
    , max(a.ZA0100) ZA0100
    from AE02 a
    where a.BAE028 = '1'
    group by a.BAZ379 
) b
INNER JOIN t_aa10 aa10 
    ON (aa10.AAA100 = 'AA5515' AND  b.AA5515 = aa10.AAA102)

Dbeaver 報告了這 3 個錯誤:

Description Resource    Path    Location    Type
SQL Error [918] [42000]: ORA-00918: column ambiguously defined
    Script-8.sql    /General/Scripts    Unknown Database Script Problem
SQL Error [933] [42000]: ORA-00933: SQL command not properly ended
    Script-8.sql    /General/Scripts    Unknown Database Script Problem
SQL Error [979] [42000]: ORA-00979: not a GROUP BY expression
    Script-8.sql    /General/Scripts    Unknown Database Script Problem

我在每一列都有前綴,它不應該是模棱兩可的。 可能是什么原因?

在 astentx 和 YoYo 指出錯誤后,我已經更正了 sql。 這是更正后的sql:

SELECT b.AAZ002 
FROM 
(
    select count(1) count1, a.BAZ379 , max(a.AB0111) AB0111, max(a.AA5515) AA5515, max(a.AAE011) AAE011
    , max(a.AAE035) AAE035, max(a.AAE036) AAE036, max(a.AAE012) AAE012, max(AAZ002) AAZ002
    , max(a.ZA0100) ZA0100
    from AE02 a
    where a.BAE028 = '1'
    group by a.BAZ379 
) b
INNER JOIN t_aa10 aa10 
    ON (aa10.AAA100 = 'AA5515' AND  b.AA5515 = aa10.AAA102)
INNER JOIN AB01 ab 
    ON ab.ZA0100 = b.ZA0100

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM