在ms sql中,我遇到了一个我需要做的查询,但无法绕过它。
我已将其简化为可以应用于我的情况的员工案例。
Employee: [EmpID, Name]
Case : [CaseID, EmployeeID, CaseName, Profit]
如何根据自己的名字选择员工最有利可图的案例?
我想要一个像
这样的结果Result : [EmpID, Name, CaseID, CaseName, Profit]
答案 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)