稀里糊涂的写完了,居然还通过了。 思路是这样的:

  1. 先将部门管理员薪资等信息查出来
  2. 然后将员工对应的薪资和其部门的管理员薪资比较
  3. 严谨点的话,管理员之间和管理员本身不应该再次和 1 中查出来的结果比较
select e.emp_no, dem.emp_no, s.salary,dem.salary
from dept_emp e
         join (select dm.emp_no, s.salary, dm.dept_no
               from dept_manager dm
                        join salaries s on dm.emp_no = s.emp_no and s.to_date = '9999-01-01') dem
              on e.dept_no = dem.dept_no
         join salaries s on s.emp_no = e.emp_no
where s.salary > dem.salary