[英]SQL Update Parent ID from Same table
是否可以使用Update From查詢更新自引用父ID。
我有桌子
加速器
AccID Name ParentAccID AccNumber
01 A Null A001
02 B Null A002
03 C Null A003
04 D Null A004
05 E Null A005
AccRef
AccNumber MasterAcc Name
A001 A001 A
A002 B
A003 A002 C
A004 A005 D
A005 A009 E
它的加入方式是使用AccNumber,然后需要根據該Acc的MasterAcc在ParentAccID中更新AccID。 僅適用於現有的AccNumber,並且AccNumber和MasterAcc不相同(對不起,如果混淆不清)
結果表應如下所示
加速器
AccID Name ParentAccID AccNumber
01 A Null A001
02 B Null A002
03 C 02 A003
04 D 05 A004
05 E Null A005
謝謝
嘗試這個,
DECLARE @Acc Table (AccID varchar(10),Name varchar(200),ParentAccID varchar(200), AccNumber varchar(200))
Insert into @Acc Values
('01','A',Null,'A001'),
('02','B',Null,'A002'),
('03','C',Null,'A003'),
('04','D',Null,'A004'),
('05','E',Null,'A005')
DECLARE @AccRef Table (AccNumber varchar(10),MasterAcc varchar(200),Name varchar(200))
Insert into @AccRef Values
('A001','A001','A'),
('A002',Null,'B'),
('A003','A002','C'),
('A004','A005','D'),
('A005','A009','E')
Update A set ParentAccID = M.AccID From @Acc A
Inner Join @AccRef R on R.AccNumber = A.AccNumber and R.AccNumber <> R.MasterAcc
Inner Join @Acc M on M.AccNumber = R.MasterAcc
希望這是您想要的。
最后,
Select * from @Acc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.