题解 | #获取每个部门中当前员工薪水最高的相关信息#
获取每个部门中当前员工薪水最高的相关信息
http://www.nowcoder.com/practice/4a052e3e1df5435880d4353eb18a91c6
-- 两张表,在from里内连接 -- 1、员工id,部门id,薪水 emp -- 2、部门、部门最高薪水 s2 -- 利用两张表组成 emp_No,dept_no,salary,maxSalary -- 注意在maxSalary中,代表的是每个部门的最高工资,检测该部门中,员工(主键)的工资是否等于最高工资,如果等于就返回 -- 不会出现A部门的员工工资等于B部门最高工资被返回,因为maxSalary代表的是该部门的最高工资,只有部门和最高工资一致才会返回 select emp.dept_no,emp.emp_no,s2.maxSalary from ( select e.emp_no,e.dept_no,s.salary from dept_emp as e inner join salaries as s on e.emp_no = s.emp_no where e.to_date = '9999-01-01' and s.to_date = '9999-01-01' )as emp inner join ( select e.dept_no,max(s.salary) as maxSalary from dept_emp as e inner join salaries as s on e.emp_no = s.emp_no where e.to_date = '9999-01-01' and s.to_date = '9999-01-01' group by dept_no )as s2 on emp.dept_no = s2.dept_no where emp.salary = s2.maxSalary order by emp.dept_no;