我有两个复杂的查询,我需要做一个内部连接,我不能得到正确的格式。
第一个查询查看列出每个部门经理的表。因为表保存了每个的历史记录。改变,我想只保留每个部门的经理与最新的from_date .
部门经理表如下:
SELECT a.*
FROM
(SELECT d1.emp_no , d1.dept_no
FROM dept_manager d1
JOIN
(SELECT dept_no, MAX(from_date) AS Lastdate
FROM dept_manager
GROUP BY dept_no) d2 ON d1.from_date = d2.Lastdate
AND d1.dept_no = d2.dept_no) AS a;
表如下:
<表类>列出 dept_no from_date to_date tbody><<tr>110022 d001 1985-01-01 1991-10-01 110039 d001 1991-10-01 9999-01-01 110085 d002 1984-01-01 1989-12-17 110114 d002 1989-12-17 9999-01-01 表类>
SELECT COUNT(salary),t1.emp_no,dept_no FROM salary t1
JOIN manager t2 ON t1.emp_no=t2.emp_no
GROUP BY t1.emp_no
给你SIM卡。因为你的日期有些时候是9999年,所以做avg是很奇怪的。
如果我理解你的问题(当前工资的平均工资)。下面是一个例子:https://www.db-fiddle.com/f/47iAMRgXRAGgg34gFG58JD/0
但是,这对当前表不起作用,因为表中没有最新员工的工资。