Итак, то, что я написал ниже, делает это (насколько мне известно и как он выводится):
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