使用另一个表中的值更新一个表中的ID记录

时间:2018-04-10 06:44:03

标签: sql-server

我们有两个表(MS SQL)

1-资产表,包含AssetCode,CustodianID和DepartmentID     此部门ID位于资产位置

2-保管人表,包含CustodianID和DepartmentID     该部门ID是该托管人所属的

情况: 有时用户从部门1转移到部门2 因此,数据输入人员将他的所有资产从资产主屏幕中的部门1移动到部门2,并忽略更改保管人主屏幕中的保管部门,现在我们可以找到他的部门在保管人主管部门中的用户1而他的资产已经转移到部门2

必填: 更新Custodian表DepartmentID以匹配相同CustodianID的Assets表DepartmentID

2 个答案:

答案 0 :(得分:0)

您可以随时添加第二个更新的位置。

UPDATE Custodian INNER JOIN Assets ON Custodian.DepartmentID = Assets.DepartmentID SET Custodian.DepartmentID = Assets.DepartmentID

此更新将确保保管人DepartmentID与资产部门ID

相同

编辑: 这是为了抱歉

答案 1 :(得分:0)

您的书面逻辑似乎意味着基于共同保管人的更新加入。

UPDATE c
SET DepartmentID = a.DepartmentID
FROM Custodian c
INNER JOIN Assets a
    ON c.CustodianID = a.CustodianID;

请注意,两个表都有CustodianIDDepartmentID,这很奇怪。您的数据可能未正常化,但可能此更新是您正朝着正确方向迈出的一步。