给出每个员工每年薪水涨幅超过5000的员工编号,薪水变更开始日期以及薪水涨幅值,并按照薪水涨幅值逆序排列。
给出每个员工每年薪水涨幅超过5000的员工编号emp_no
http://www.nowcoder.com/questionTerminal/eb9b13e5257744db8265aa73de04fd44
由薪水涨幅值可知要求后一年的工资减去前一年的工资并且大于5000,于是想到可使用两张表使用join连接起来,然后取每条记录的两个工资相减,连接条件是员工号相同,s2表是s1表的后一年,且s2表工资减s1表的工资大于5000,最后加上薪水涨幅值的逆序排序条件即可
select s1.emp_no,s2.from_date,(s2.salary-s1.salary) as salary_growth from salaries s1 join salaries s2 on s1.emp_no=s2.emp_no and (strftime('%Y', s2.to_date)-strftime('%Y', s1.to_date))=1 and (s2.salary-s1.salary)>5000 order by salary_growth desc;