2012-03-25 68 views
2
SELECT Output.name, Output.avgSalary 
    FROM (SELECT Airplane.aid, Airplane.aname AS name, 
       AVG (worker.salary) AS avgSalary 
     FROM Aircraft Airplane , Certified IsCertified, Employees worker 
     WHERE Airplane.aid = IsCertified.aid AND 
       IsCertified.eid = worker.eid AND 
       Airplane.crusingrange > 1000 
      GROUP BY Airplane.aid, Airplane.aname) AS Output 

Oracle SQL在最後的「AS輸出」中表示錯誤,但我無法弄清楚它出了什麼問題。 :S查詢「未定義」列(?)時出現SQL錯誤

ERROR at line 1: 
ORA-00933: SQL command not properly ended 
+5

刪除 「AS」。 – 2012-03-25 01:44:58

回答

2

試試這個:

  SELECT Airplane.aid, Airplane.aname AS name, 
       AVG (worker.salary) AS avgSalary 
     FROM Aircraft Airplane INNER JOIN Certified IsCertified on 
        Airplane.aid = IsCertified.aid 
       INNER JOIN Employees worker on IsCertified.eid = worker.eid 
     WHERE Airplane.crusingrange > 1000 
      GROUP BY Airplane.aid, Airplane.aname 
+0

「巡航範圍」,但它的作品!非常感謝 :) – 2012-03-25 02:03:12

5

你不需要子選擇。這種查詢是等效的:

SELECT 
    Airplane.aname AS name, 
    AVG(worker.salary) AS avgSalary 
FROM Aircraft Airplane 
JOIN Certified IsCertified ON Airplane.aid = IsCertified.aid 
JOIN Employees worker ON IsCertified.eid = worker.eid 
WHERE Airplane.crusingrange > 1000 
GROUP BY Airplane.aid, Airplane.aname 
相關問題