我正在尝试从工资表中获取最新的月工资,其中每个月在工资表中多次输入employeeID

时间:2018-02-13 04:37:08

标签: mysql

员工表“ 的 EMPNO, 为ename, sal_id, EMP_ID, 薪水, 一个月

SALARY表:

sal_id, EMP_ID, 薪水, 月

我正在尝试查询从员工表+获取所有员工 在工资表中,emp_id有多个条目(可能不是)。

我想要员工名单及其最新薪水(或上个月薪水)

我目前的查询是:

SELECT * FROM emp LEFT JOIN salary ON emp.empno = salary.emp_id GROUP BY empno ORDER BY salary.sal_id DESC

但是我得到第一份工资的emp列表,我想要最新的工资。

帮帮我:( Emploee table Salary table

3 个答案:

答案 0 :(得分:0)

您的排序是sal_id,而您可能希望按salary中代表其月份的字段进行排序。

答案 1 :(得分:0)

SELECT emp.empno, emp.name, (
        SELECT sal
        FROM salary
        WHERE salary.empno = emp.empno
        ORDER BY salary.sal_id DESC LIMIT 1
        )
FROM emp

答案 2 :(得分:0)

经过大量的R& D和谷歌搜索,我得到了解决方案。 在单个查询中不可能,我们必须应用2个查询

SELECT * FROM emp LEFT JOIN salary ON salary.emp_id=emp.empno WHERE salary.sal_id IN ( SELECT MAX(salary.sal_id) FROM salary GROUP BY salary.emp_id ) GROUP BY salary.sal_id ORDER BY salary.sal_id DESC