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
需要更新的字段是A表的flocation 为何会出现重复更新的项,求解
何以见得重复了?虽然flocation重复,但是别的不同啊。你要的是合并更新的效果么
应是是出现在这里吧。 A.flocation != B.flocation 值不相等和 A.flocation 不存在,满足其中1个值就行。
也就是说,出现重复的那个 A.flocation 的值为null。
WHERE A.flocation != B.flocation OR A.flocation IS NULL