2012-01-16 74 views
1

我从多个不同来源接收事务信息,并将它们合并为一个临时表。包含的临时表:SQL或SSIS检查统计表与统计数据历史表

TransactionNumber (Not Unique) 
TransactionAmount 
TransactionDate 
TransactionLocation 
AccountNumber 
UpdatedDate 
FileName 

我想使用SQL或SSIS检查stg表vs历史来查找愚蠢。问题是我的来源可以多次重新发送交易。我想创建一个包含所有交易的表格,因为我的流程在前一天运行,然后删除我在历史记录中已有的交易(相同金额,日期,位置和帐户编号)。该表格将用于每天发送一次。我不太清楚如何去做这件事。谢谢您的帮助!

+0

看来,你在一个表中的所有数据,并且您已经知道如何识别重复,那么你的问题到底是什么?您是否无法编写SQL查询来删除重复项,或者您是否还有其他问题? – Pondlife 2012-01-17 14:28:44

+0

我有两个表一个临时表和一个历史表。我想比较两者并找到不重复的交易。我不知道如何编写查询。这是我的问题。 – buzzzzjay 2012-01-17 14:44:38

回答

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 
    ) 
+0

这就是行政长官!谢谢! – buzzzzjay 2012-01-17 16:14:23