运行此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
答案 0 :(得分:2)
如果具有相同列名的多个表,并且在没有别名的语句中使用此列名,则会显示此错误。所以解释器无法确定它应该使用哪个表。
要修复查询,请检查所有没有别名的列并为它们添加前缀。 (例如trx_number
)
答案 1 :(得分:1)
ra_interface_lines_all
表有trx_number
列,存在于其他表中,因此您必须将表名(或别名)引用到列。
在您的情况下,如果是新表,您可以更改为:
, ra_interface_lines_all
WHERE ra_interface_lines_all.trx_number = 3021