Oracle SQL where子句子查询无法正常工作

vbopmzt1  于 2022-11-03  发布在  Oracle
关注(0)|答案(1)|浏览(128)

我有一个汽车租赁管理数据库,我创建了一个查询,应输出汽车维修主管有1个以上的下属(维修)。在我的情况下,只有一个主管有2个下属。
当我尝试使用这个选择语句,它仍然输出所有主管,而在现实中,我只需要输出第一行。真的很感谢你的帮助,我是相当新的SQL和这是我的学校项目。

t3irkdon

t3irkdon1#

使用HAVING子句,而不是(不相关的)子查询:

SELECT MAX(s.name || ' ' || s.surname) as "Supervisor",
       MAX(s.mobile_nr) as "Telephone",
       COUNT(w.id_worker) as "Total subworkers"
FROM   supervisor s
       INNER JOIN worker w
       ON s.id_supervisor=w.id_supervisor
       INNER JOIN maintainer m
       ON w.id_maintainer=m.id_maintainer
GROUP BY s.id_supervisor
HAVING COUNT(w.id_worker) > 1
  • 注意:您可能希望使用主管的主键GROUP BY,而不是使用姓名,因为可能有两个人同名(如果他们共用一个办公室,则使用相同的电话号码)。*
  • 注意2:使用ISO/ANSI标准连接语法,而不是30年前的旧式逗号连接语法,因为这种语法很难理解。*

相关问题