Логика в отношении некоторого кода, чтобы найти все, что не в таблице? - PullRequest
0 голосов
/ 03 октября 2019

Итак, то, что я написал ниже, делает это (насколько мне известно и как он выводится):

1) Я нашел, где совпадают Zip, City, State и Bank Name. ~ 3786 записей

2) Я объединил это с тем, где совпадают только город, штат, имя (минус Zip). ~ 4390 записей

В совокупности у меня 8176 записей.

Далее я пытаюсь найти оставшуюся часть таблицы (всего 18 288 записей, так что осталось примерно 10 000), которая неполучить в этих 2 запросов, равных 8 176.

Есть идеи, как это найти?

Моя таблица BM_BNKA_FLATFILE_FEDACHDIR2018_ZIP_5_010 просто разделяет таблицу, выступая в качестве исходной таблицы для всех 18 288 записей.

Моя BM_BNKA_FLATFILE_SWIFT_US_LPAD_SMALLZIP_SPLIT_CITY_STATE таблица выступает в качестве другой исходной таблицы, где я правильно отформатировал столбцы.

My BM_BNKA_FLATFILE_FEDACHDIR2018_NDIST_BIC_ZIP_5_030 объединяет эти две таблицы выше для Zip, State, City, Name и filteres, где BIC не равен NULL. Bic - это просто код банка.

SELECT SWIFT_US.BIC, 
       FED_ACH_5ZIP.RoutingNumber, 
       FED_ACH_5ZIP.BankName, 
       FED_ACH_5ZIP.BankCity, 
       FED_ACH_5ZIP.BankStateCd, 
       FED_ACH_5ZIP.BankZip_5, 
       'Second Pass' AS Phase 
FROM dbo.BM_BNKA_FLATFILE_FEDACHDIR2018_ZIP_5_010 AS FED_ACH_5ZIP 
LEFT OUTER JOIN dbo.BM_BNKA_FLATFILE_SWIFT_US_LPAD_SMALLZIP_SPLIT_CITY_STATE AS SWIFT_US 
        ON FED_ACH_5ZIP.BankName = SWIFT_US.INSTITUTION_NAME 
        AND FED_ACH_5ZIP.BankCity = SWIFT_US.CITYNEW 
        AND FED_ACH_5ZIP.BankStateCd = SWIFT_US.STATENEW
/*AND FED_ACH_5ZIP.BankZip_5 = SWIFT_US.ZIPNEW    */ 
WHERE (SWIFT_US.BIC IS NOT NULL) 
AND FED_ACH_5ZIP.RoutingNumber NOT IN
                        (SELECT RoutingNumber
                         FROM BM_BNKA_FLATFILE_FEDACHDIR2018_NDIST_BIC_ZIP_5_030)

UNION ALL

SELECT *, 'First Pass' AS Phase
FROM BM_BNKA_FLATFILE_FEDACHDIR2018_NDIST_BIC_ZIP_5_030

1 Ответ

0 голосов
/ 03 октября 2019

Полагаю, вам нужно простое предложение EXCEPT -

SELECT *
FROM BM_BNKA_FLATFILE_FEDACHDIR2018_ZIP_5_010

EXCEPT

(
SELECT SWIFT_US.BIC, 
       FED_ACH_5ZIP.RoutingNumber, 
       FED_ACH_5ZIP.BankName, 
       FED_ACH_5ZIP.BankCity, 
       FED_ACH_5ZIP.BankStateCd, 
       FED_ACH_5ZIP.BankZip_5, 
FROM dbo.BM_BNKA_FLATFILE_FEDACHDIR2018_ZIP_5_010 AS FED_ACH_5ZIP 
LEFT OUTER JOIN dbo.BM_BNKA_FLATFILE_SWIFT_US_LPAD_SMALLZIP_SPLIT_CITY_STATE AS SWIFT_US 
        ON FED_ACH_5ZIP.BankName = SWIFT_US.INSTITUTION_NAME 
        AND FED_ACH_5ZIP.BankCity = SWIFT_US.CITYNEW 
        AND FED_ACH_5ZIP.BankStateCd = SWIFT_US.STATENEW
/*AND FED_ACH_5ZIP.BankZip_5 = SWIFT_US.ZIPNEW    */ 
WHERE (SWIFT_US.BIC IS NOT NULL) 
AND FED_ACH_5ZIP.RoutingNumber NOT IN
                        (SELECT RoutingNumber
                         FROM BM_BNKA_FLATFILE_FEDACHDIR2018_NDIST_BIC_ZIP_5_030)

UNION ALL

SELECT *
FROM BM_BNKA_FLATFILE_FEDACHDIR2018_NDIST_BIC_ZIP_5_030
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...