Sql 包括没有计数值的组
我有以下疑问:Sql 包括没有计数值的组,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有以下疑问: 选择部门ID ,将(EmployeeID)计数为CountEmployee 来自人力资源部员工调动 按部门ID分组 这是我当前的输出: DepartmentID CountEmployee 1 15 2 20 我想包括没有任何员工的部门,如下所示: DepartmentID CountEmployee 1 15 2 20 3 NULL 4 NUL
选择部门ID
,将(EmployeeID)计数为CountEmployee
来自人力资源部员工调动
按部门ID分组
这是我当前的输出:
DepartmentID CountEmployee
1 15
2 20
我想包括没有任何员工的部门,如下所示:
DepartmentID CountEmployee
1 15
2 20
3 NULL
4 NULL
大概,您有一个某种“部门”表。对于此查询,您希望从此表中获得一个左联接
:
SELECT d.DepartmentID, Count(et.EmployeeID) AS CountEmployee
FROM HR.Departments d LEFT JOIN
HR.EmployeeTransfer et
ON d.DepartmentID = et.DepartmentID
GROUP BY d.DepartmentID;
请注意,这将返回0
,而不是NULL
。如果确实需要NULL
,可以使用:
SELECT d.DepartmentID, NULLIF(Count(et.EmployeeID), 0) AS CountEmployee
大概,您有一个某种“部门”表。对于此查询,您希望从此表中获得一个左联接
:
SELECT d.DepartmentID, Count(et.EmployeeID) AS CountEmployee
FROM HR.Departments d LEFT JOIN
HR.EmployeeTransfer et
ON d.DepartmentID = et.DepartmentID
GROUP BY d.DepartmentID;
请注意,这将返回0
,而不是NULL
。如果确实需要NULL
,可以使用:
SELECT d.DepartmentID, NULLIF(Count(et.EmployeeID), 0) AS CountEmployee
您需要从“部门”表开始,然后将
左键联接到“员工”表。@Larnu如果我没有“员工”表,我如何才能做到这一点?您可能需要一个。您有部门表吗?你有哪些表格,有哪些架构和关系?你需要从你的部门表格开始,然后左键连接到employees表格。@Larnu如果我没有employees表格,我该如何实现它?你可能想要一个。你有部门表格吗?你们有什么表格,有什么样的模式和关系?如果我没有Employee表格,我怎么能做到这一点?@MartinJames。我不知道这是如何回答你提出的问题的。如果两个表都有,那么在EmployeeTransfer
中仍然无法包含缺少的部门。如果我没有Employee表,我如何才能做到这一点?@MartinJames。我不知道这是如何回答你提出的问题的。如果两个表都有,则仍无法在EmployeeTransfer
中包含缺少的部门。