2012-05-27 192 views
0

我以前在SQL Server中创建了这个SELECT命令,需要统计每个Department包含的雇员人数。 这是我用什么:SQL Server SELECT with Count,Group By,Where and Join

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 

但现在我没有得到任何结果。 任何想法我做错了什么?

谢谢:) Mitsy。

回答

4

测试,如果现场返回的值是NULL不通过平等=的迹象,但与IS操作

= null 

执行是不行的,而不是写:

Employees.JobEndDate IS NULL 
+0

噢,我的。实际工作。我不能相信它:)谢谢! – user1268741

0
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