题解 | #获取员工其当前的薪水比其manager当前薪水还高的相关信息#
获取员工其当前的薪水比其manager当前薪水还高的相关信息
http://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef
- 连接de和s,得到每个员工对应的id,部门和工资,记为tb1;
- 连接dm和s,得到每个部门对应经理的id,部门和工资,记为tb2;
- 根据部门id,把tb2左连到tb1上,形成【员工id,部门id,经理id,员工工资,经理工资】,
挑出员工工资大于经理工资的那些对应列即可;
代码:
select tb1.emp_no,tb2.manager_no, tb1.emp_salary, tb2.manager_salary
from
(select de.emp_no, de.dept_no, s.salary emp_salary
from dept_emp de, salaries s
where de.emp_no = s.emp_no) as tb1
left join
(select dm.dept_no, dm.emp_no manager_no, s.salary manager_salary
from dept_manager dm, salaries s
where dm.emp_no = s.emp_no) as tb2
on tb1.dept_no = tb2.dept_no
where tb1.emp_salary > tb2.manager_salary