2014-09-04 168 views
-3

我有一個錯誤的ORA-00918:列模糊定義。 該列是NARRATION,它在「view_accvoucherrep」和「view_accchequedetails」兩個表中定義。當我在搜索選項中使用別名時,它工作正常。但不能這樣寫。 當我們沒有搜索條件即運行「UPPER(旁白)LIKE‘%CHECK’它的正常工作和顯示所有的結果。ORACLE ORA-00918:列模糊定義

SELECT * FROM 
(
SELECT 
a.LOCATIONNAME,DEBIT,CREDIT, 
a.NARRATION as NARRATION, 
a.VOUCHERTYPE 

from view_accvoucherrep a 
left join view_accchequedetails dep_chq on dep_chq.locationcode=a.locationcode 
where a.TRANYEAR='2014_2015' 
and UPPER(NARRATION) LIKE '%CHEQUE%' 
) 
+2

你知道答案嗎?敘述列是兩個表中。所以,當你沒有前綴的別名,如何數據庫知道該選擇哪一個? – 2014-09-04 06:40:59

+0

這是好的,我得到了解決方案,我們可以改變連接條件,並可以選擇列,忽略accchequedetails表中的敘述庫爾 like join(從view_accchequedetails中選擇locationcode,column1,column2,......)dep_chq上dep_chq.locationcode = a.locationcode 這是工作 – Syed 2014-09-04 12:15:35

回答

0

不能使用在哪裏。你必須使用列別名該科拉姆名字裏,有表別名

SELECT * FROM 
(
SELECT 
a.LOCATIONNAME,DEBIT,CREDIT, 
a.NARRATION as NARRATION, 
a.VOUCHERTYPE 

from view_accvoucherrep a 
left join view_accchequedetails dep_chq on dep_chq.locationcode=a.locationcode 
where a.TRANYEAR='2014_2015' 
and UPPER(a.NARRATION) LIKE '%CHEQUE%' 
) 
+0

我們可以修改連接條件,因爲搜索條件是定義爲其他頁面,但在這不起作用。 – Syed 2014-09-04 06:50:50

+0

您可以添加一些示例數據和預期結果嗎? – Jens 2014-09-04 06:53:36