Sql 如何获得经理';s的名字来自于雇员的名字
我如何在这里找到经理的名字。每个经理也是一名员工Sql 如何获得经理';s的名字来自于雇员的名字,sql,sql-server-2008,select,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
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
您可以自联接表,并使用联接实例获取管理器的名称:
SELECT e.empid, e.name, m.name
FROM employee e
JOIN employee m on e.managerid = m.empid
您必须使用Left Join来获得所需的输出。否则,您将错过一些没有经理的员工
SELECT e.empid, e.name Employee, ISNULL(e1.name,'') Manager
FROM employee e
LEFT JOIN employee e1 on e.managerid = e1.empid
@mm759每位经理也是一名员工,因此提供了姓名。有关详细信息,请参阅。
JOIN
行应为JOIN employee m on e.managerid=m.empid
。您在连接字段的两侧都有e.
。@Shiva arg,愚蠢的打字错误。当然,你是对的。编辑和固定。
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