問題に直面しており、これに対する解決策が見つかりません。フィールドからデータを取得するソース テーブル (T) があります。データには、タイムスタンプ付きの重複レコードが含まれる場合があります。私の目的は、フィールド データを取得し、同じ構造を持つ最終テーブル (F) に格納することです。挿入する前に、F にキー フィールドが存在するかどうかを確認します。存在する場合は、F のレコードを T の最新のレコードで更新します。それ以外の場合は、T から F にレコードを挿入します。重複がない限り、これは正常に機能します。 T のレコード。T にタイムスタンプが異なる同じキーの 2 つのレコードがある場合。常に両方のレコードを挿入します (キーが主キーの場合、挿入操作は失敗します)。操作に次のコードを使用しています-
IF EXISTS(SELECT * FROM [Final_Table] F, TMP_Source T WHERE T.IKEy =F.IKEY)
begin
print 'Update'
UPDATE [Final_Table]
SET [FULLNAME] = T.FULLNAME
,[FATHERNAME] = T.FATHERNAME
,[MOTHERNAME] = T.MOTHERNAME
,[SPOUSENAME] = T.SPOUSENAME
from TMP_Source T
WHERE Final_Table.IKEy = T.IKEy
and [Final_Table].[RCRD_CRN_DATE] < T.RCRD_CRN_DATE
--Print 'Update'
end
else
begin
INSERT INTO [Final_Table]
([IKEy],[FTIN],[FULLNAME],[FATHERNAME],[MOTHERNAME],[SPOUSENAME]
)
Select IKEy,FTIN,FULLNAME,FATHERNAME,MOTHERNAME,SPOUSENAME
from TMP_Source
end
問題は、Tテーブルに次のようなエントリがある場合に発生します-
IKey RCRD_CRN_DATE ...
123 10-11-2013-12.20.30
123 10-11-2013-12.20.35
345 10-11-2013-01.10.10
3 つすべてが F テーブルに挿入されます。助けてください。