1

运行此 SQL 时出现错误ORA-00918: column ambiguously defined:(添加表时ra_interface_lines_all

SELECT DISTINCT rcta.TRX_NUMBER
              , rcta.trx_date
              , rcta.PRINTING_OPTION
              , rcta.PRINTING_PENDING
              , rcta.CREATED_FROM
              , houf.NAME  Business_Unit
              , xep.NAME   Legal_Entity
              , rctta.NAME Transaction_Type
              , rcta . invoice_currency_code
              , aaa.gl_date
              , rtb.NAME   Payment_Name
              , hca.account_name
FROM   ra_customer_trx_all        rcta
     , hr_organization_units_f_tl houf
     , xle_entity_profiles        xep
     , ra_terms_tl                rtb
     , RA_CUST_TRX_TYPES_ALL      rctta
     , hz_cust_accounts           hca
     , AR_ADJUSTMENTS_ALL         aaa
     , ra_interface_lines_all
WHERE  trx_number           = 3021
   AND rcta.org_id          = houf.organization_id
   AND xep.legal_entity_id  = rcta.legal_entity_id
   AND rcta.SET_OF_BOOKS_ID = aaa.SET_OF_BOOKS_ID 
4

2 回答 2

2

当您有多个具有相同列名的表并且在没有别名的语句中使用此列名时,会出现此错误。所以解释器无法确定它应该使用哪个表。

要修复您的查询,请检查所有没有别名的列并为其添加前缀。(trx_number 例如)

于 2018-03-29T08:14:28.177 回答
1

ra_interface_lines_all表的trx_number列存在于其他表中,因此您必须将表名(或别名)引用到列。

在您的情况下,如果它是新表,您可以更改为:

 , ra_interface_lines_all
   WHERE  ra_interface_lines_all.trx_number           = 3021
于 2018-03-29T08:19:35.797 回答