# 查询当前在职员工的当前工资 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了。
【本题思路】
先查询当前在职员工的当前工资,然后将其作为一个表与另外两表作合适的连接,获得一个表的记录能同时带有员工号、其入职工资和当前工资。然后当前工资-入职工资就能得到工资涨幅啦。