思想:
题目要求查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序。
首先通过条件employees as e inner join salaries as new on e.emp_no = new.emp_no and new.to_date='9999-01-01'实现employees表和salaries的内连接,即找到每个员工当前的工资。
其次通过条件inner join salaries as old on e.emp_no = old.emp_no and e.hire_date = old.from_date 将刚才那个表和salaries表内连接,即找出每个员工刚来的工资
最后通过(new.salary - old.salary)得出涨幅再排序。
select e.emp_no,(new.salary - old.salary) as growth from employees as e
inner join salaries as new on e.emp_no = new.emp_no and new.to_date='9999-01-01'
inner join salaries as old on e.emp_no = old.emp_no and e.hire_date = old.from_date
order by growth;