# 查询当前在职员工的当前工资
select emp_no, salary now_salary
from salaries
where to_date = '9999-01-01'
group by emp_no, salary;

# 查找在职员工自入职以来的薪水涨幅情况(三表连接,使得记录能有员工号对应其入职工资及当前工资)
select e.emp_no, now_salary-salary as growth
from employees e
join salaries s
on e.emp_no=s.emp_no and e.hire_date = s.from_date
join (
    select emp_no, salary now_salary
    from salaries
    where to_date = '9999-01-01'
    group by emp_no, salary
) k1
on e.emp_no=k1.emp_no
order by growth;

连接条件on 后面也能使用and添加多个连接条件,最开始程序报错,还以为不能这么用。但后来执行又成功了,且自己去本地dbms中又执行了发现查询没问题。好了,以后能放连接条件里的就不额外弄出来写where了。

【本题思路】

先查询当前在职员工的当前工资,然后将其作为一个表与另外两表作合适的连接,获得一个表的记录能同时带有员工号、其入职工资和当前工资。然后当前工资-入职工资就能得到工资涨幅啦。