我从多个不同的来源接收交易信息,并将它们合并到一个临时表中。登台表包含:
TransactionNumber (Not Unique)
TransactionAmount
TransactionDate
TransactionLocation
AccountNumber
UpdatedDate
FileName
我想使用SQL或SSIS检查stg表与历史记录以查找dupes。问题是我的来源可以多次重新发送交易。我想创建一个包含所有事务的表,因为我的进程在前一天运行,然后删除历史记录中已有的事务(相同金额,日期,位置和帐号)。此表将用于每天发送一次。我真的不确定如何解决这个问题。谢谢你的帮助!
答案 0 :(得分:3)
由于您要删除一个表中存在于另一个表中的行,您可能需要这样的内容:
delete from
dbo.Staging
where
exists (
select *
from
dbo.History
where
TransactionAmount = dbo.Staging.TransactionAmount and
UpdatedDate = dbo.Staging.UpdatedDate and
TransactionLocation = dbo.Staging.TransactionLocation and
AccountNumber = dbo.Staging.AccountNumber
)