如何使用group by子句显示员工姓名列

时间:2012-09-15 07:03:54

标签: sql-server group-by

您好我有两个表员工部门。在员工中我有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受薪员工的部门和工资。

2 个答案:

答案 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

随着逻辑的发展。这应该工作。如果你仍然收到错误。请发布错误。否则发布输出。