2015-11-15 98 views
-1

四處錯誤:錯誤ORA-01427:單行子查詢返回不止一行

ERROR ORA-01427: single-row subquery returns more than one row 

這是代碼:

select (select visano from employees where empno=empno) National_ID,basicsl Basic_sal,govt_cont GOV_CONT,pensnd Emp_PAID_CONT, (select max(to_date(pstyymm,'yyyymm')) from pen_ded where seril=seril) max ,(select min(to_date(pstyymm,'yyyymm')) from pen_ded where seril=seril) min, 
    hsealwn H_ALWN,elcalwn E_ALWN,wtralwn WTR_ALWN 
    from pen_ded 
+0

'empno = empno'根據定義是真實的,所以第一個子查詢將只返回表中的所有行。你究竟想達到什麼目的? – Mureinik

+0

我想從第一個子查詢中只獲取visano – ghalib

+0

只需在FROM中使用正確的JOIN,然後將CASE當...在那裏你需要它。許多子查詢難以讀取和調試 – Mihai

回答

0

此查詢在幾個地方有缺陷。 1)從員工中選擇visano應作爲連接進行,而不是查詢列。有沒有連接pen_ded與員工的專欄? 2)最小和最大列應該用分析功能來查詢,例如 - Min(薪水)Over(按seril排序)min。

除此之外,你寫下的所有where子句都是沒有意義的。我建議通過SQL教程來更好地理解編寫查詢的基本指導原則。

相關問題