Sql 我如何选择员工最赚钱的案例';s

Sql 我如何选择员工最赚钱的案例';s,sql,database,Sql,Database,在ms sql中,我遇到了一个我需要执行的查询,但我无法理解它 我已将其简化为一个员工案例,我可以将其应用于我的情况 Employee: [EmpID, Name] Case : [CaseID, EmployeeID, CaseName, Profit] 我如何选择一个员工最赚钱的案例来反对他的名字 我希望结果是 Result : [EmpID, Name, CaseID, CaseName, Profit] 请注意,如果您有相同利润的员工案例,则此项不完整。对于这些情况,您可以向

在ms sql中,我遇到了一个我需要执行的查询,但我无法理解它

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

Employee: [EmpID, Name]
Case    : [CaseID, EmployeeID, CaseName, Profit]
我如何选择一个员工最赚钱的案例来反对他的名字

我希望结果是

Result  : [EmpID, Name, CaseID, CaseName, Profit]
请注意,如果您有相同利润的员工案例,则此项不完整。对于这些情况,您可以向mix添加另一个join,它在mysql中的工作方式


@Lieven-想想,应该是总和而不是MAX。同一个电磁脉冲在多个情况下工作的地方。@Sachin,我不这么认为(但可能是错误的)。为了记录在案,我没有投你一票,在我的情况下,有同样利润的员工,但我不明白为什么你的不完整。你肯定是按员工ID分组的?(哦,等等,我明白了-同一个员工有同样的利润..啊,这不是问题:)相同利润的员工没有问题。具有多个案例且利润相同的员工为。在这种情况下,你想回到什么情况下(没有双关语的意思)。@Lieven-嘿,这不是关于否决票的问题,反正我的答案是错的。我不介意。别担心。我只是想,在同一个empID的情况下可以有多个记录,但OP应该告诉我们:)什么数据库管理系统?如果我们了解数据库系统,就有最佳的方法可以做到这一点
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