员工表中的SQL Update Manager ID

时间:2017-08-22 08:37:02

标签: sql-server

我的Employee Temp Table具有以下表格结构:

**|EmpId | EmpName | ManagerId | ManagerName|**
  |------|---------|-----------|------------|
  |[113] |[Test]   |           |[A]         |
  |[111] |[A]      |           |[B]         |

我需要一个更新查询来填充员工临时表中的Manager Id,方法是从EmpId中获取相同的值

update B
set B.ManagerCode=A.EmpID 
from EmployeeTemp A INNER JOIN EmployeeTemp B
ON A.ManagerName=B.EmpName

此查询对我不起作用。任何人都可以建议对此进行修改。

1 个答案:

答案 0 :(得分:2)

已成功更新

DECLARE @Table TABLE (
    EmpId  INT, 
    EmpName VARCHAR(100), 
    ManagerId INT,
    ManagerName VARCHAR(100)
)

INSERT INTO @Table  
SELECT 113 ,'Test', NULL, 'A' UNION ALL         
SELECT 111 ,'A'   , NULL, 'B'        

SELECT * FROM @Table

UPDATE I
SET ManagerId = O.EmpId
FROM @Table I
INNER JOIN @Table o
ON I.ManagerName = o.EmpName

SELECT * FROM @Table