如何从雇用名称获取经理的姓名

时间:2016-08-31 06:10:10

标签: sql sql-server-2008 select

如何在此处找到经理姓名。每位经理也是一名员工。

EmpID  Name  ManagerId
  1     A       3
  2     B       1
  3     C       2
  4     D       5
  5     E       1

预期结果是这样的

EmpID  Name  ManagerName
  1     A       C
  2     B       A
  3     C       B
  4     D       E
  5     E       A

3 个答案:

答案 0 :(得分:1)

您可以自行加入表格,并使用已加入的实例获取经理的姓名:

SELECT e.empid, e.name, m.name
FROM   employee e
JOIN   employee m on e.managerid = m.empid

答案 1 :(得分:1)

你必须使用左连接来获得所需的输出。否则你会想念一些没有经理的员工..

SELECT e.empid, e.name Employee, ISNULL(e1.name,'') Manager
FROM   employee e
LEFT JOIN   employee e1 on e.managerid = e1.empid

答案 2 :(得分:0)

CREATE TABLE #MYTEMP
(
     EmpID  INT
    ,Name  VARCHAR(10)
    ,ManagerId INT
)

INSERT INTO #MYTEMP VALUES
(1,'A',3),( 2,'B',1),(3,'C',2),(4,'D',5),( 5,'E',1)

SELECT EMP.EmpID AS EMPNO,
       EMP.Name AS EMPLOYEE,
       MGR.Name AS MANAGER
FROM #MYTEMP EMP
JOIN #MYTEMP MGR
ON EMP.ManagerId = MGR.EmpID