繁体   English   中英

查找每个部门 (dID) 中薪酬最高的员工 (Salary + Comm)

[英]Finding the highest paid employee (Salary + Comm) in each department (dID)

下面是我的表,我正在尝试编写一个 MySQL 查询,该查询选择每个部门 (dID) 中薪酬最高的员工 (Salary + Comm)

EmployeeID  | Name       | mgr | Job         | Salary| Com | HireDate     | dID
1001 | Ron Smith   | 1005| Writer| 90000 | 20000| 20012-04-12| 1
1002 | Ricky Lake  | 1003| Writer| 55000 | 15000| 2013-01-18| 1

这是我到目前为止

SELECT dID, MAX(coalesce(Salary+Comm, Salary, Comm)) AS 'TotalPaid'
FROM Employee 
Group By dID

如何允许显示其他列? 希望我已经充分解释了我想要的东西,谢谢。

这是一种方法:

select e.* from 
Employee e inner join 
(SELECT dID, MAX(coalesce(Salary+Comm, Salary, Comm)) as max_salary  AS 'TotalPaid'
FROM Employee 
Group By dID) d
on d.dID = e .dID 
and coalesce(e.Salary+e.Comm, e.Salary, e.Comm)=d.max_salary
SELECT dID, MAX(Salary+Comm) AS 'TotalPaid'
FROM Employee 

这将完成工作

SELECT
    E2.*, E3.TotalPaid
FROM
    Employee E2
INNER JOIN
    (
    SELECT
        MAX(eID) AS eID,
        dID,
        MAX(
            (
            SELECT
                MAX(
                    COALESCE(Salary + Comm, Salary, Comm)
                )
            FROM
                Employee E1
            WHERE
                E.eiD = E1.eID
        )
        ) AS 'TotalPaid'
    FROM
        Employee E
    GROUP BY
        dID
) AS E3
ON
    E2.eID = E3.eID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM