思想:
- 求出每个员工的to_date值为最大值的员工信息
- 求出每个员工的to_date值为最小值的员工信息
- 求出每个员工最晚日期的薪水
- 求出每个员工最早日期的薪水
- 求出每个员工的编号和涨薪(结果)
代码:
select maxSalary.emp_no,maxSalary.salary-minSalary.salary as growth FROM (SELECT salaries.emp_no,salaries.salary FROM salaries,(SELECT emp_no,MAX(to_date) AS to_date FROM salaries GROUP BY emp_no) AS et WHERE salaries.emp_no=et.emp_no AND salaries.to_date=et.to_date and curdate()<salaries.to_date) as maxSalary, (SELECT salaries.emp_no,salaries.salary FROM salaries,(SELECT emp_no,Min(to_date) AS to_date FROM salaries GROUP BY emp_no) AS et WHERE salaries.emp_no=et.emp_no AND salaries.to_date=et.to_date)as minSalary where maxSalary.emp_no=minSalary.emp_no order by growth ASC
提醒:注意求的是在职员工的涨薪情况
NOW() 可以用来返回当前日期和时间 格式:YYYY-MM-DD hh:mm:ss
CURDATE() 可以用来返回当前日期 格式:YYYY-MM-DD
CURTIME() 可以用来返回当前时间 格式:hh:mm:ss