Я работаю над интеграционным проектом и создал таблицу пакетных журналов, где я сохраняю, какие комбинации уже были экспортированы, а затем проверяю новые данные по этой таблице пакетных журналов.Это работало довольно хорошо, пока я в основном просто сохранял один идентификатор в таблице пакетного журнала, скажем, идентификатор клиента, а затем выбирал новые строки из таблицы клиентов следующим образом:
SELECT *
FROM Customer
WHERE CusId NOT IN (SELECT CusID FROM IntegrationBatchlog)
Однако теперь решение более сложное иодна и та же строка из таблицы Customer будет экспортироваться несколько раз в сочетании с другими данными, поэтому теперь у меня есть несколько отдельных хранимых процедур и больше столбцов в таблице IntegrationBatchlog (CusID, OrdertypeID и PaymentMethod) и предложения объединения в моем выборе, так что теперь это больше похоже на *.1004 *
SELECT * FROM Customer c
JOIN....
JOIN...
JOIN...
WHERE there is not a row with that CusID AND OrderTypeID AND PaymentMethod in batchlog table yet.
Итак, здесь я должен проверить, была ли эта точная комбинация уже экспортирована, но как это сделать, когда вам нужно три столбца идентификатора в таблице пакетных журналов и вы хотите исключить те строки, где всетри идентификатора уже присутствуют в одной строке в таблице пакетного журнала?