1查员工最开始工资,to_date字段
2查员工最后工资
3两工资关联到一张表,计算涨幅
4过滤在职员工
SELECT c.emp_no, c.salary - d.salary growth FROM ( SELECT a.emp_no, a.to_date, a.salary FROM salaries a INNER JOIN ( SELECT emp_no, max(to_date) maxdate FROM salaries GROUP BY emp_no ) b ON a.emp_no = b.emp_no AND a.to_date = b.maxdate ) c, ( SELECT a.emp_no, a.to_date, a.salary FROM salaries a INNER JOIN ( SELECT emp_no, min(to_date) mindate FROM salaries GROUP BY emp_no ) b ON a.emp_no = b.emp_no AND a.to_date = b.mindate ) d WHERE c.emp_no = d.emp_no AND DATE_FORMAT(c.to_date,'%Y-%m-%d')='9999-01-01' ORDER BY growth ASC;