我有一张table:
+----+-------+--------+-----------+
| Id | Name | Salary | ManagerId |
+----+-------+--------+-----------+
| 1 | Joe | 70000 | 3 |
| 2 | Henry | 80000 | 4 |
| 3 | Sam | 60000 | NULL |
| 4 | Max | 90000 | NULL |
+----+-------+--------+-----------+
我需要让员工比任何经理都挣得多
我创建了一个查询,我得到的雇员谁的收入比他们的经理:
select a.Name
from Employee a inner join Employee b on a.ManagerId = b.Id
where a.Salary > b.Salary
如何修改此查询以获取多个管理器?
5条答案
按热度按时间oxiaedzo1#
你不需要任何加入。获得所有经理的最高工资,并检查员工工资是否大于经理的最高工资
qoefvg9y2#
您可以使用
EXISTS
来代替:不过
EXISTS
有点乱,因为判断某人是否是经理的唯一方法是某人是否让他们担任经理。kpbpu0083#
如果要使用联接而不是子查询:
qvk1mo1f4#
获得比任何经理都多的
表示您希望员工的收入高于经理的最低薪金:
或
如果只希望非经理的员工使用CTE:
fhg3lkii5#