我有一个记录集,我需要每行更新。
Contract Number Reference Number
1488126698627 112082
0000926775991 629013
0000926775991
1808199032200 928022
0000526840337 630422
0000526840337
0000527102517
0000527102517 117312
0000527135329 941407
0082100091988 112310
0082100091988
1808199524881 21435
0000927142120 80960
2223200018220 334370
2972200000048 335784
0000927055614
0000927055614 328196
我可以在逻辑等于的地方运行什么样的语句:
对于我的记录集的每一行,如果参考编号为空并且具有匹配的合同编号,则将参考编号设置为等于匹配合同的参考编号。
所以合约号0000526840337有4行,但只有1行有参考号,我需要将参考号630422复制到其他3个匹配的行中。
答案 0 :(得分:1)
您可以使用join
:
update recordset t join
(select ContractNumber, max(ReferenceNumber) as ReferenceNumber
from recordset t
group by ContractNumber
) tt
on t.ContractNumber = tt.ContractNumber
set t.ReferenceNumber = tt.ReferenceNumber
where t.ReferenceNumber is null;