【问题标题】:How to display employee name column using group by clause如何使用 group by 子句显示员工姓名列
【发布时间】:2012-09-08 06:07:28
【问题描述】:

您好,我有两个表 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 受薪员工及其部门和薪水。

【问题讨论】:

    标签: sql-server group-by


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      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
      

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

      【讨论】:

        猜你喜欢
        • 2021-04-28
        • 1970-01-01
        • 2016-03-17
        • 1970-01-01
        • 2011-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多