SQL语句错误

打印仅在巡航距离超过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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章