您好我有两个表员工和部门。在员工中我有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时,我正在跟随输出。
FirstName Salary DepartmentName
BAKER 1400.00运营
Allen 5400.00研究
史密斯1800.00研究Dennis 4500.00销售
Mihir 7500.00销售
WARK 8000.00销售
我想只显示Max受薪员工的部门和工资。
答案 0 :(得分:0)
将E.First Name添加到Group By。必须在GroupBy或其他聚合中考虑Select语句中的列。答案实际上在您收到的错误消息中。
答案 1 :(得分: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
随着逻辑的发展。这应该工作。如果你仍然收到错误。请发布错误。否则发布输出。