2015-06-30 3 views
0

У меня есть два больших списка клиентов из двух разных программных систем, в которых примерно одинаковые клиенты, но часто написаны несколько разные. Примеры включают Дэна вместо Даниэля или с или без Inc, фамилию сначала вместо имени, и т. Д. Я получаю только 30% -ное совпадение на точные имена, используя простой запрос выбора, который я вставил в примере. Как я могу изменить это, чтобы сделать его более удобным для выбора шаблона между этими двумя таблицами, чтобы больше походить на матчи с небольшими изменениями имени?Найти похожие имена между двумя таблицами

SELECT [Customer System 1].[Customer Name] 
FROM Customer System 2 INNER JOIN [Customer System 1] 
ON Customer System 2.[Cust Name] = [Customer System 1].[Customer Name]; 

ответ

1

Вы можете попробовать с like:

select [Customer System 1].[Customer Name] 
from ([Customer System 2] 
join [Customer System 1] on ([Customer System 2].[Cust Name] like '%' & [Customer System 1].[Customer Name] & '%' 
         or [Customer System 1].[Customer Name] like '%' & Customer System 2.[Cust Name] & '%')); 

Есть два условия, потому что может быть два случая, в которых строки должны быть совпадающими:

  • [Customer System 2].[Cust Name] содержит шаблон [Customer System 1].[Customer Name] (Daniel соответствует %Dan% модель, но Dan не соответствует %Daniel%);
  • [Customer System 1].[Customer Name] содержит шаблон [Customer System 2].[Cust Name] (Dan не соответствует %Daniel%, но Daniel соответствует %Dan%);
+0

Спасибо за ответ suslov. Я пробовал ваш запрос здесь несколько раз, и Access продолжает давать мне сообщение «Синтаксическая ошибка в FROM FROM». Похоже, что отчасти это не нравится. Есть идеи? – wilbev

+0

@wilbev: Я предполагаю, что это проблема с круглыми скобками, попробуйте добавить обертку вокруг условий 'on' или использовать обновленный запрос – potashin

+0

, к сожалению, до сих пор не повезло с ним, не получив такую ​​же синтаксическую ошибку в операции Join. – wilbev

Смежные вопросы