打印仅在巡航距离超过1000公里的飞机上获得认证的员工的姓名。
SELECT E.ename
FROM Employees E, Certified C, Aircraft A
WHERE C.aid = A.aid AND E.eid = C.eid
GROUP BY E.eid, E.ename
HAVING EVERY (A.cruisingrange > 1000)
Oracle缺少对该HAVING EVERY
子句的支持会产生错误
ORA-00907: missing right parenthesis
如何解决?
而不是每个,选择最小的一个,并检查其是否大于1000
SELECT E.ename
FROM Employees E
INNER JOIN Certified C ON E.eid = C.eid
INNER JOIN Aircraft A ON C.aid = A.aid
GROUP BY E.ename
HAVING MIN(A.cruisingrange) > 1000
正如戈登所说,我忘了提到,我将联接语法从隐式(逗号分隔)固定为显式联接语法。尽量避免使用隐式联接语法,这通常会导致在处理两个以上的表时出错。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句