1. 程式人生 > >sql 查詢所有員工自入職以來的薪水漲幅

sql 查詢所有員工自入職以來的薪水漲幅

題目描述

查詢所有員工自入職以來的薪水漲幅情況,給出員工編號emp_no以及其對應的薪水漲幅growth,並按照growth進行升序。當前日期'9999-01-01'
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
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`));

輸入描述:

輸出描述:

emp_nogrowth
100110
省略省略
1001054496
1000434003

思路:因為要從salary表中查出入職時和當前的工資,所以聯立2個salary表

select e.emp_no,(ss.salary-s.salary) growth

from employees e,salaries s,salaries ss
where e.emp_no=s.emp_no and e.emp_no=ss.emp_no
and e.hire_date=s.from_date
and ss.to_date='9999-01-01'
order by growth