如何选择员工最赚钱的案例?

时间:2011-02-18 10:54:27

标签: sql database

在ms sql中,我遇到了一个我需要做的查询,但无法绕过它。

我已将其简化为可以应用于我的情况的员工案例。

Employee: [EmpID, Name]
Case    : [CaseID, EmployeeID, CaseName, Profit]

如何根据自己的名字选择员工最有利可图的案例?

我想要一个像

这样的结果
Result  : [EmpID, Name, CaseID, CaseName, Profit]

2 个答案:

答案 0 :(得分:2)

SELECT *
FROM   Employee e
       INNER JOIN Case c ON c.EmployeeID = e.EmpID
       INNER JOIN (
         SELECT EmployeeID, MAX(Profit) AS Profit
         FROM   Case
         GROUP BY 
                EmployeeID
       ) pmax ON pmax.EmployeeID = c.EmployeeID
                 AND pmax.Profit = c.Profit

请注意,如果您的员工拥有相同的利润,则情况并不完整。对于这些情况,您可以在混合中添加另一个连接

答案 1 :(得分:0)