UPDATE A
SET A.flocation = B.flocation
FROM base A
INNER JOIN
(SELECT t.f4, t.fmanudate, t.flocation
FROM (SELECT p.*, ROW_NUMBER() OVER(PARTITION BY f4 ORDER BY fmanudate DESC) rn
FROM pd p) t
WHERE t.rn = 1) AS B
ON A.f5 = B.f4 AND A.fmanudate > B.fmanudate
WHERE A.flocation != B.flocation OR A.flocation IS NULL
目标是当满足条件时更新,但是为何会重复呢?求解