各レコードに、、、および列があるテーブルが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
)
;
しかし、これはうまくいきません。何か案は?