MS Access присоединяется к возвращению нулевого столбца - PullRequest
1 голос
/ 09 июля 2020

У меня есть две таблицы в MS Access с одинаковым столбцом Name_ID, единственная проблема в том, что они немного отличаются. Name_ID в таблице 1 выглядит так:

Name_ID
Newton, Kate Little
River, Jane Armen
Barker, Bob Jep
Jake, Lee 

А в таблице 2 это выглядит так:

Name_ID
NEWTON, KATE L MD
RIVER, JANE A DO MS
BARKER, BOB J. (MD)
JAKE, LEE I.

Я борюсь с тем, как присоединиться к таблицам. Я пробовал выполнить соединение, используя подобное, на основе Access / SQL Server 2008 Join using Like не работает , но это не работает:

Select table1.*, table2.col from table1 
left join 
table2 
on table1.Name_ID like '*' & table2.Name_ID & '*';

Я также пробовал:

Select table1.*, table2.col from table1
left join 
table2
on instr(table1.Name_ID, table2.Name_ID) > 0;

Оба запроса выполняются, но возвращают пустые столбцы. Есть идеи, почему это не работает, или лучший способ?

1 Ответ

1 голос
/ 09 июля 2020

Оба запроса ищут строку полного имени в другой строке полного имени. Как вы ожидаете, что Newton, Kate Little будет соответствовать *NEWTON, KATE L MD*? И для второго запроса NEWTON, KATE L MD не входит в Newton, Kate Little.

Вероятно, лучше всего извлечь часть фамилии и сопоставить ее. Предполагает, что имена не повторяются и не повторяются несколько человек с одинаковой фамилией и всегда с запятой.

SELECT Table1.Name_ID, Table2.Name_ID
FROM Table1 LEFT JOIN Table2 
ON Table1.Name_ID LIKE Left(Table2.Name_ID, InStr(Table2.Name_ID,",")) & "*";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...