我有一张临时表(表T)和另一张有最终数据的表(故事F)。
我需要比较一个关键字段(这里是锡),如果记录已经存在且记录创建日期早于T中的那个,
我想更新F.
中的记录如果T
中的记录不可用,我想替换它。
我使用了以下给出的合并 -
MERGE Digitization329 AS NF
USING
( SELECT *
FROM TMP_Npr
) AS NT
ON NF.Tin = NT.Tin
WHEN MATCHED AND NF.[RCRD_CRN_DATE] < NT.[RCRD_CRN_DATE]
THEN
UPDATE
SET [FULLNAME] = NT.FULLNAME ,
[FATHERNAME] = NT.FATHERNAME ,
[MOTHERNAME] = NT.MOTHERNAME ,
[SPOUSENAME] = NT.SPOUSENAME
WHEN NOT MATCHED
THEN
INSERT (
[TIN] ,
[FTIN] ,
[FULLNAME] ,
[FATHERNAME] ,
[MOTHERNAME] ,
[SPOUSENAME]
)
VALUES ( NT.TIN ,
NT.FTIN ,
NT.FULLNAME ,
NT.FATHERNAME ,
NT.MOTHERNAME ,
NT.SPOUSENAME
);
两个表中的 RCRD_CRN_DATE
都是datetime
类型。
但是我总是在F表中获得重复记录。
我无法找出匹配和NF的原因。[RCRD_CRN_DATE]&lt; NT。[RCRD_CRN_DATE]无效。
感谢。
我的T表包含三个记录
tin RCRD_CRN_DATE ...
123 10-11-2013-12.20.30
123 10-11-2013-12.20.35
345 10-11-2013-01.10.10
操作后F表有三个记录。