【问题标题】:SQL or SSIS Checking Stg Table vs History Table for DupesSQL 或 SSIS 检查 Stg 表与历史表的 Dupes
【发布时间】:2012-01-16 17:29:23
【问题描述】:

我从多个不同的来源接收交易信息,这些信息都被合并到一个临时表中。暂存表包含:

TransactionNumber (Not Unique)
TransactionAmount
TransactionDate
TransactionLocation
AccountNumber
UpdatedDate
FileName

我想使用 SQL 或 SSIS 来检查 stg 表与历史记录以查找骗子。问题是我的消息来源可以多次重新发送交易。我想创建一个包含所有交易的表,因为我的流程在前一天运行,然后删除我在历史中已经拥有的交易的重复(相同的金额、日期、位置和帐号)。该表将用于每天发送一次。我真的不知道该怎么做。感谢您的帮助!

【问题讨论】:

  • 您似乎拥有一张表中的所有数据,并且您已经知道如何识别重复项,那么您的问题到底是什么?您是无法编写 SQL 查询来删除重复项还是有其他问题?
  • 我有两个表,一个是暂存表,一个是历史表。我想比较两者并找到不重复的交易。我不确定如何编写查询。这是我的问题。

标签: sql tsql ssis bids


【解决方案1】:

由于您要删除一个表中存在于另一个表中的行,您可能需要这样的东西:

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
    )

【讨论】:

    猜你喜欢
    • 2021-05-28
    • 2012-08-05
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多