【问题标题】:How to get all departments with Employee number如何获取具有员工编号的所有部门
【发布时间】:2015-06-25 20:41:01
【问题描述】:

我有一个像这样的 EmployeeDepartmetn 连接表。我在 Depeartment 表中有所有部门,在 Employee 表中有员工..

我想获取特定员工的部门以及部门表中可用的所有部门。

应该类似于 Select DepartmentId, DepartmentName, EmployeeID from Query。

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

请给Linq查询

提前致谢

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    在你的左连接中加入条件:

    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。

    【讨论】:

      【解决方案2】:

      您可以使用条件聚合来做到这一点:

      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;
      

      【讨论】:

      • 你能在 linq 中给我同样的吗...我正在尝试,但我无法在 join 中给出和条件
      猜你喜欢
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 2018-09-19
      • 2022-12-02
      • 1970-01-01
      相关资源
      最近更新 更多