我不能得到这个工作。 我需要首先找到假期和病假小时的最大总和,然后找到哪些员工有这个价值的假期和病假小时数。我可以得到最高168,但无论我如何安排事情,我似乎都无法得到符合这一标准的员工 - 我只是得到所有员工的完整列表。下面的代码是最后一次尝试,根据班级的方向。谢谢!SQL找到最大值然后找到它的发生
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
这与我在想的相似......但我认为'having'中的子查询必须是'employee'的'sum'的最大值'...这让我想到使用cte删除重复...然后消除对'有'条款的需要...这使我怀疑到底是什么老师试图引出的问题... – 2012-04-13 17:51:59
谢谢!这就是我要做的 - 实际上刚刚发现了它。我离开了作为一个简单的最大函数的第二部分,我假设然后将总和和最大值等同于同一行,从而每次都得到我的整个员工表。 – Volvox 2012-04-13 17:52:49
@VOlvox,迈克尔是绝对正确的。我刚刚更新了答案。现在它应该是防弹的:)谢谢迈克尔:) – 2012-04-13 17:55:45