Попытка выяснить, могу ли я построить некоторую логику вокруг сопоставления этих столбцов. У меня есть 2 таблицыСоответствующие столбцы - в запросе
Table A
Make Model
BMW 2 Series
BMW 3 Series
BMW 3 Series GT
BMW 5 Series
BMW 5 Series GT
BMW 7 Series
Rolls-Royce Other
Mini Cooper
Mini Coupe
Table B
Make Series
BMW 2 Series
BMW 3 Series
BMW 5 Series
Bavarian Motor 7 Series
Rolls-Royce 42000 GT
Mini Cooper
Мне нужно извлечь вывод, как показано ниже и хранить в таблице
Output
Make Model_A Model_B
BMW 2 Series 2 Series
BMW 3 Series 3 Series
BMW 3 Series GT 3 Series
BMW 5 Series 5 Series
BMW 5 Series GT 5 Series
BMW 7 Series 7 Series
Rolls-Royce Other 42000 GT
Mini Cooper Cooper
Mini Coupe Cooper
По большей части, я мог бы соответствовать столбцы, используя ниже запроса:
(A.SERIES like '%' + B.model + '%'
OR B.model like '%' + A.series + '%')
Но это не относится к «Купе» против «Купера», Rolls-Royce и «BMW» против «Баварского двигателя».
Любая идея, как я могу обрабатывать все это в T-sql или в запросе? Soundex или любой алгоритм расстояния работает в этом случае - попробовал оба.
Я знаю, что я могу обрабатывать все случаи, используя «union all» для запуска в одном запросе, но ключ предназначен для обработки вышеуказанных случаев.
Заранее за вашу помощь. ~ Bee
Вы должны исправить свои данные, чтобы у вас были правильные ключи «join». –
Вы можете добавить таблицы ('NormalizedMakes',' NormalizedModels'), чтобы обеспечить нормализованные значения, например. 'Name' и' NormalizedName' и заполнять их соответственно '('BMW', 'BMW'), ('Bavarian Motor Werks', 'BMW'), ...'. Затем используйте их для поиска нормализованных значений для сравнения. Уродливый, требует постоянного обслуживания, вероятны столкновения, .... Или нарядите дезинфицирующее средство для рук. – HABO
@ Gordon - к сожалению, исправление данных не является вариантом - его из нескольких источников. _ да, может добавить таблицу карт, но сохранение этого будет кошмаром. В любом случае, я могу определить, что купе и кооператив похожи? – Bee