【问题标题】:SQL Server SELECT with Count, Group By, Where and Join带有计数、分组依据、位置和连接的 SQL Server SELECT
【发布时间】:2012-05-27 17:45:51
【问题描述】:

我之前在 SQL Server 中创建了这个 SELECT 命令,它需要计算每个部门包含多少员工。 这是我用的:

SELECT Departments.Description AS [Department], COUNT(Employees.ID) AS [Employees]
FROM Employees 
RIGHT JOIN Departments ON
Employees.DepartmentID = Departments.ID 
GROUP BY Departments.Description

而且效果很好(即使没有员工也可以显示部门)。

现在,我想通过以下过滤器仅计算 当前工作 员工:

WHERE Employees.JobEndDate = null

我试过这样做:

SELECT   Departments.Description AS [Department], COUNT(Employees.ID) AS [Employees] 
FROM Employees 
RIGHT JOIN Departments ON
Employees.DepartmentID = Departments.ID 
WHERE Employees.JobEndDate = NULL 
GROUP BY Departments.Description

但现在我没有得到任何结果。 知道我做错了什么吗?

谢谢 :) 米西。

【问题讨论】:

    标签: sql-server-2008 null count group-by where


    【解决方案1】:

    测试字段返回值是否为NULL 不是通过等于= 符号而是使用IS 运算符来执行的

    = null
    

    不行,改写:

    Employees.JobEndDate IS NULL
    

    【讨论】:

      【解决方案2】:
      SELECT Departments.Description AS [Department], COUNT(Employees.ID) AS [Employees] FROM Employees RIGHT JOIN Departments ON Employees.DepartmentID = Departments.ID WHERE Employees.JobEndDate = IS NULL GROUP BY Departments.Description
      

      【讨论】:

        猜你喜欢
        • 2017-04-10
        • 2011-06-09
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 1970-01-01
        • 2012-05-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多