1. 程式人生 > >資料庫SQL實戰 --10.獲取所有部門中當前員工薪水最高的相關資訊

資料庫SQL實戰 --10.獲取所有部門中當前員工薪水最高的相關資訊

題目描述

獲取所有部門中當前員工薪水最高的相關資訊,給出dept_no, emp_no以及其對應的salary

CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_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`));

解題思路

SELECT d.dept_no, s.emp_no, MAX(s.salary) AS salary
FROM salaries AS s INNER JOIN dept_emp As d
ON d.emp_no = s.emp_no 
WHERE d.to_date = '9999-01-01' AND s.to_date = '9999-01-01'
GROUP BY d.dept_no
  • 用INNER JOIN連線兩張表,限制條件是兩張表的emp_no相同,即d.emp_no = s.emp_no;
  • 用GROUP BY d.dept_no將每個部門分為一組,用MAX()函式選取每組中工資最高者;