首页 > 试题广场 >

给出每个员工对比上一年的薪水涨幅超过5000的员工编号emp

[编程题]给出每个员工对比上一年的薪水涨幅超过5000的员工编号emp
  • 热度指数:94814 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给出每个员工对比上一年的薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。
提示:在sqlite中获取datetime时间对应的年份函数为strftime('%Y', to_date)
(数据保证每个员工的每条薪水记录to_date-from_date=1年,而且同一员工的下一条薪水记录from_date=上一条薪水记录的to_date)

CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
如:插入
INSERT INTO salaries VALUES(10001,52117,'1986-06-26','1987-06-26');
INSERT INTO salaries VALUES(10001,62102,'1987-06-26','1988-06-25');
INSERT INTO salaries VALUES(10002,72527,'1996-08-03','1997-08-03');
INSERT INTO salaries VALUES(10002,72527,'1997-08-03','1998-08-03');
INSERT INTO salaries VALUES(10002,72527,'1998-08-03','1999-08-03');
INSERT INTO salaries VALUES(10003,43616,'1996-12-02','1997-12-02');
INSERT INTO salaries VALUES(10003,43466,'1997-12-02','1998-12-02');

则输出:
emp_no
from_date
salary_growth
10001
1987-06-26
9985
头像 大王白小甫
发表于 2020-06-24 17:46:59
题目:给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。提示:在sqlite中获取datetime时间对应的年份函数为strftime('%Y', to_date)(数据保 展开全文
头像 N刻后告诉你
发表于 2020-05-19 20:37:00
题目:汇给出每个员工每年薪水涨幅超过5000的员工编号emp_no,薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。提示:在sqlite中获取datetime时间对应的年份函数为strftime(‘%Y’, to_date) 方法 展开全文
头像 瞭望远方呀
发表于 2020-09-25 16:24:15
为以防一年内员工多次涨薪,以下查询代码更保守 select s1.emp_no ,max(s2.from_date) ,sum(s2.salary-s1.salary) salary_growth from salaries s1 inner join salaries 展开全文
头像 在看面经的孤勇者很纠结
发表于 2020-09-23 20:33:37
由薪水涨幅值可知要求后一年的工资减去前一年的工资并且大于5000,于是想到可使用两张表使用join连接起来,然后取每条记录的两个工资相减,连接条件是员工号相同,s2表是s1表的后一年,且s2表工资减s1表的工资大于5000,最后加上薪水涨幅值的逆序排序条件即可 select s1.emp_no,s2 展开全文
头像 高质量搬砖人
发表于 2021-01-30 10:40:30
方法)表自联结得出工资涨幅大于5000的记录 按照salary_growth逆序排列 SELECT s2.emp_no, s2.from_date, (s2.salary - s1.salary)salary_gro 展开全文
头像 球球了美好快出现吧别再铺垫了
发表于 2020-08-05 17:31:58
select s1.emp_no,s2.from_date, (s2.salary-s1.salary)as salary_growthfrom( select s.emp_no,s.salary,s.from_date,strftime('%Y', from_date) as 展开全文
头像 王钲超
发表于 2020-08-18 10:49:32
select s1.emp_no, s1.from_date, (s1.salary - s2.salary) as salary_growthfrom salaries s1, salaries s2where s1.emp_no = s2.emp_no and s1.from_date = s2 展开全文
头像 数据分析阿宇君
发表于 2020-08-28 21:02:32
法一 select s1.emp_no, s1.from_date, s1.salary-s2.salary as salary_growth from salaries s1,salaries s2 where s1.emp_no=s2.emp_no and (strf 展开全文