2012-01-16 89 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