我无法让它工作。 我需要先找到休假和病假总小时数的最大值,然后找出哪些员工的休假和病假总小时数具有此值。我可以获得 168 个最大值,但无论我如何安排事情我似乎无法获得符合此标准的员工 - 我只是获得所有员工的完整列表。下面的代码是最后一次尝试,基于类(class)方向。谢谢!
SELECT e.employeeID, SUM(e.vacationhours + e.sickleavehours) AS maxHours
FROM humanresources.employee e
WHERE EXISTS (
SELECT SUM(e.vacationhours + e.sickleavehours) AS totalhours
FROM humanresources.employee e)
GROUP BY e.employeeID
最佳答案
TOP WITH TIES
简化了这个问题...
如果您只想要一个具有最大总小时数的员工列表...您可以简单地按总和排序,然后选择前 1 名,包括任何领带,以便它返回具有最大值的所有员工:
SELECT TOP 1 WITH TIES
e.employeeID,
SUM(e.vacationhours + e.sickleavehours) AS totalHours
FROM humanresources.employee e
GROUP BY e.employeeID
ORDER BY totalHours DESC;
关于SQL查找最大值然后找到其出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10145433/