我有一个表,其中每条记录都有一个Value,一个VersionEffective和一个VersionExpiration列。目前,该VersionEffective列已正确填写,但该VersionExpiration列默认为'9999-12-31'. 对于具有相同值的记录,只有最新的记录VersionEffective不应该过期。其余的应该是。具体来说,当插入新记录时,如果之前有一条具有相同值的活动记录,则该记录将过期,其VersionExpiration等效于新记录的VersionEffective. VersionEffective我有一个存储过程可以在插入/时正确设置VersionExpiration它们,但我需要返回并追溯更新VersionExpiration旧记录的字段。
我目前的想法类似于以下内容:
UPDATE fubarTable as t
SET t.VersionExpiration = (
SELECT TOP 1 VersionEffective
FROM fubarTable as f
WHERE t.Value = f.Value
ORDER BY VersionEffective DESC
)
;
但是,这行不通。有任何想法吗?