簡體   English   中英

左外連接錯誤

[英]Left Outer Join Error

當我嘗試進行左外部聯接時,以下查詢出現此錯誤

第7行出現錯誤:ORA-00936:缺少表達式

select s.FINAL_BSAL,s.EMP_No,p.ERN_DDCT_CATNO,p.AMOUNT,n.NO_PAY_AMOUNT,
p.Pay_month,a.ARREARS_AMOUNT from salary_details s,pay_details p,Arrears a,No_Pay n 
where s.emp_no=p.emp_no 
and 
s.SAL_NO  IN (SELECT MAX(SAL_NO) FROM SALARY_DETAILS group by EMP_NO) 
AND
to_char(P.PAY_MONTH,'MM-YYYY') =to_char(n.NO_PAY_MONTH,'MM-YYYY') (+)
AND
to_char(P.PAY_MONTH,'MM-YYYY')=to_char(a.ARREARS_MONTH,'MM-YYYY') ;

請幫忙。

問題在於(+)的位置:

代替:

to_char(P.PAY_MONTH,'MM-YYYY') =to_char(n.NO_PAY_MONTH,'MM-YYYY') (+)

你應該做:

to_char(P.PAY_MONTH,'MM-YYYY') =to_char(n.NO_PAY_MONTH (+),'MM-YYYY')

但是,如果您是我,我會采用@Walter_Ritzel的方法,而是使用ANSI JOIN語法。 這樣並正確格式化SQL,以便可讀...

嘗試這個:

select s.FINAL_BSAL
  ,s.EMP_No
  ,p.ERN_DDCT_CATNO
  ,p.AMOUNT
  ,n.NO_PAY_AMOUNT
  ,p.Pay_month
  ,a.ARREARS_AMOUNT
from salary_details s inner join pay_details p on s.emp_no = p.emp_no
inner join Arrears a on to_char(P.PAY_MONTH,'MM-YYYY')= to_char(a.ARREARS_MONTH,'MM-YYYY')
left outer join No_Pay n on to_char(P.PAY_MONTH,'MM-YYYY') = to_char(n.NO_PAY_MONTH,'MM-YYYY') 
where s.SAL_NO IN (SELECT MAX(SAL_NO) FROM SALARY_DETAILS group by EMP_NO);

暫無
暫無

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

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