题目描述
查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序(请注意,一个员工可能有多次涨薪的情况) 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_nosalary1001125828省略省略1000160117
--方法一:获取salaries中from_data中最小的对应的salary和emp_no,因为salaries可能涨薪,所以这张表一个员工可能有多条记录。
SELECT
emp_no,
salary
FROM
salaries
GROUP BY
emp_no
HAVING
min( from_date )
ORDER BY
emp_no DESC
--方法二:hire_data时间和from_data时间一致
SELECT
emp_no,
salary
FROM
salaries
GROUP BY
emp_no
HAVING
min( from_date )
ORDER BY
emp_no DESC
--方法三:hire_data时间和from_data时间一致
SELECT
e.emp_no,
s.salary
FROM
employees AS e,
salaries AS s
WHERE
e.emp_no = s.emp_no
AND e.hire_date = s.from_date
ORDER BY
e.emp_no DESC