0

您好,我有两张表EmployeeDepartment。在员工中,我有 empid、firstName、salary、Department_ID,在部门中我有 deptid 和 deptname。我想显示每个部门的薪水最高的员工姓名。我完成了以下代码

select  MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON e.Department_ID = D.Department_ID
GROUP BY D.Name

它仅来自部门表(我在这里没有包括 E.FirstName)。当我编写如下查询时

select E.FirstName MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON e.Department_ID = D.Department_ID
GROUP BY D.Name

给出一个错误

E.FirstName 不包含在聚合函数或 GROUP BY 子句中。

如何修改它以显示员工姓名?

当我也在 group by 子句中添加 E.FirstName 时,我得到了关注。

名字薪金部门名称

贝克 1400.00 操作

艾伦 5400.00 研究

史密斯 1800.00 研究

丹尼斯 4500.00 销售

米希尔 7500.00 销售额

WARK 8000.00 销售额

我只想显示 Max 受薪员工及其部门和薪水。

4

2 回答 2

0

将 E.FirstName 添加到 GroupBy。Select 语句中的列必须在 GroupBy 或其他聚合中考虑。答案实际上在您收到的错误消息中。

于 2012-09-15T07:08:01.397 回答
0
select E.FirstName MAX(E.Salary),D.Name from Employee as E JOIN Department As D
ON E.Department_ID = D.Department_ID
GROUP BY D.Name,E.FirstName

按照逻辑。这应该有效。如果仍然出现错误。请发布错误。否则发布输出。

于 2012-09-15T07:21:07.810 回答