1-我们的“datamart”表中存在一些recor,但在源系统表中不再存在。
2-因此,我们希望将“未知”或0值硬编码到其中一些记录的列中(例如column1
和column2
)
3-这是我们参与的2个表:
Datamart.TableA
SourceSystem.TableB
4-我们想要UPDATE
上面提到的Datamart.TableA
表,以便在SourceSystem.TableB
中不再存在的recors列中插入“Unknown”或0值
5-这就是我们的2个表的链接方式:
Datamart.TableA.Enumber = SourceSystem.TableB.Eid
和
Datamart.TableA.AccountNo = SourceSystem.TableB.AccountID
问题:
我有点想到我可能需要在我的代码中使用NOT EXISTS
以及
Datamart.TableA.Eunmber = SourceSystem.TableB.Eid
和
Datamart.TableA.AccountNo = SourceSystem.TableB.AccountID
但是,我不太确定如何制定这一切。有什么建议吗?
答案 0 :(得分:1)
update DataMart.tableA
set column1 = 0
from DataMart.tableA a left join SourceSystem.TableB b on a.ENumber = b.Eid and a.AccountNo = b.AccountId
where b.Eid is null
答案 1 :(得分:0)
您可以在NOT EXITS
声明中使用UPDATE
:
UPDATE Datamart.TableA
SET column1 = 0, column2 = 0
WHERE NOT EXISTS (SELECT 1
FROM SourceSystem.TableB AS b
WHERE Datamart.TableA.Enumber = b.Eid AND
Datamart.TableA.AccountNo = b.AccountID)
这将更新TableA
中TableB
没有相关记录的所有记录。