SQL或SSIS检查Stg表与Dupes的历史表

时间:2012-01-16 17:29:24

标签: sql tsql ssis bids

我从多个不同的来源接收交易信息,并将它们合并到一个临时表中。登台表包含:

TransactionNumber (Not Unique)
TransactionAmount
TransactionDate
TransactionLocation
AccountNumber
UpdatedDate
FileName

我想使用SQL或SSIS检查stg表与历史记录以查找dupes。问题是我的来源可以多次重新发送交易。我想创建一个包含所有事务的表,因为我的进程在前一天运行,然后删除历史记录中已有的事务(相同金额,日期,位置和帐号)。此表将用于每天发送一次。我真的不确定如何解决这个问题。谢谢你的帮助!

1 个答案:

答案 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
    )