考虑一个具有细微差别的纯SQL解决方案
UPDATE
在中包含子查询的查询
WHERE
IIF()
,和域聚合,
DLookUp
.
UPDATE myTable t
SET t.N2 = IIF(t.N2 = -99, DLookUp("N1-N2", "myTable", "[Name]='" & t.[Name] & "' AND N2 <> -99"), N2)
WHERE t.[Name] IN (SELECT t.[Name]
FROM myTable t
GROUP BY t.[Name]
HAVING (Count(t.[Name]) = 2)
AND (Min(t.N2) <> Max(t.N2))
AND (Min(t.N2) = -99 OR Max(t.N2) = -99))
餐桌前
Name N1 N2
A 500 300
A 0 -99
B 60 -99
B 77 -99
C 0 -99
C 15 100
C 30 -9
Name N1 N2
A 500 300
A 0 200
B 60 -99
B 77 -99
C 0 -99
C 15 100
C 30 -9