SQL6查找所有员工入职时候的薪水情况

it2023-10-30  79

题目描述

查找所有员工入职时候的薪水情况,给出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

 

最新回复(0)