如何使用员工编号获得所有部门

时间:2015-04-19 03:51:52

标签: sql sql-server

我有一个像这样的EmployeeDepartmetn juction表。我拥有Depeartment表中的所有部门和Employee表中的员工.. enter image description here

我希望获得特定员工的部门以及设备表中的所有部门。

应该像从Query中选择DepartmentId,DepartmentName,EmployeeID。

此处的主要标准是,如果员工没有该部门,则需要显示NULL。我在这里很困惑......请帮助。

请给Linq查询

先谢谢

2 个答案:

答案 0 :(得分:2)

在左连接中添加条件:

Select distinct a.DeptID, b.DepartmentName, b.EmployeeID
From Department a
left join EmployeeDepartment b
on a.DeptID = b.DeptID and b.EmployeeID = 1 --insert employee ID here

它将显示所有部门(即使没有员工的部门),然后仅在该员工被分配时显示您在第三列中选择的员工ID。

答案 1 :(得分:0)

您可以使用条件聚合执行此操作:

select DeptId,
       max(case when EmployeeId = 1 then EmployeeId end) as EmployeeId
from EmployeeDepartment ed
group by DeptId;

编辑:

如果您还有departments表:

select d.deptid, d.name, ed.employeeid
from Departments d left join
     EmployeeDepartment ed
     on d.deptid = ed.deptid and
        ed.employeeid = 1;
相关问题