1. 程式人生 > >資料庫SQL實踐27:給出每個員工每年薪水漲幅超過5000的員工編號emp_no

資料庫SQL實踐27:給出每個員工每年薪水漲幅超過5000的員工編號emp_no

思想:

題目要求給出每個員工每年薪水漲幅超過5000的員工編號emp_no、薪水變更開始日期from_date以及薪水漲幅值salary_growth,並按照salary_growth逆序排列。

提示:在sqlite中獲取datetime時間對應的年份函式為strftime('%Y', to_date)

首先通過條件將s1表和s2以員工號相等相連

其次通過條件將s2.salary-s1.salary大於5000的記錄找出來

再者判斷是否相隔一年(此時按to_date相減等於1來判斷的)

最後排序

select s2.emp_no, s2.from_date, (s2.salary - s1.salary) as salary_growth
from salaries as s1, salaries as s2
where s1.emp_no = s2.emp_no
and s2.salary - s1.salary > 5000
and strftime('%Y',s2.to_date) - strftime('%Y',s1.to_date) = 1
order by salary_growth desc;