SQL или SSIS Проверка таблицы Stg против таблицы истории для Dupes - PullRequest
1 голос
/ 16 января 2012

Я получаю информацию о транзакции из разных источников, и все это объединено в одну промежуточную таблицу.Промежуточная таблица, содержащая:

TransactionNumber (Not Unique)
TransactionAmount
TransactionDate
TransactionLocation
AccountNumber
UpdatedDate
FileName

Я хочу использовать SQL или SSIS для проверки таблицы stg и истории для поиска дубликатов.Проблема в том, что мои источники могут повторно отправлять транзакции несколько раз.Я хочу создать таблицу, содержащую все транзакции, поскольку мой процесс был запущен накануне, а затем удалить дубликаты транзакций, которые у меня уже есть в истории (та же сумма, дата, местоположение и номер счета).Эта таблица будет использоваться для отправки раз в день.Я не совсем уверен, как это сделать.Спасибо за помощь!

1 Ответ

3 голосов
/ 17 января 2012

Поскольку вы хотите удалить строки в одной таблице, которые существуют в другой, вам, вероятно, понадобится что-то вроде этого:

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
    )
...