Я использую Microsoft Access. Я по-прежнему новичок в SQL (извините, если мой текущий подход выглядит слишком простым), и я застрял в попытке присоединиться к двум таблицам с разными именами столбцов, в которых одна таблица имеет имена моделей полностью принтеров, тогда как В другой таблице только часть названия принтера.Связать таблицы, основанные на ближайшем текстовом совпадении в SQL-запросах?
Вот некоторые данные образцы
TableA:
Модель
MS811DN ЛАЗЕРНЫЙ ПРИНТЕР
MS811D Т Н ЛАЗЕРНЫЙ ПРИНТЕР
MS812 ЛАЗЕРНЫЙ ПРИНТЕР
TableB: Модель
MS811DTN
MS811DN
MS81 (в котором ничего после MS81 может представлять ничего, кроме MS811DTN или MS811DN)
Я попытался использовать следующее ОТ Заявление: ОТ TableA LEFT JOIN Таблица B ON TableA .MODEL LIKE TableB.Model & «*»
но возвращает повторяющиеся результаты, так как она обеспечивает все значения, что модели «как»
что я ищу, чтобы сделать т О возвращают результаты, которые обеспечивают самое близкое соответствие, например, что Таблица A Таблица B
MS811DN Лазерный принтер ссылки на MS811DN
MS811D Т N Лазерный принтер ссылки на MS811DTN
MS812 Лазерный принтер ссылки на MS81
Есть способ просто вернуть результаты, которые являются ближайшим совпадением?
Стол слишком большой, чтобы быть оснащен колонкой, которая может быть заполнена (возможно, некоторым алгоритмом, затем вручную отрегулирована) значениями, соответствующими ключу из таблицы B?Таким образом, вы можете преобразовать ближайшее совпадение (которое иногда выглядит как угадывание) для точных совпадений. – miroxlav
У меня есть более 30 000 полей в таблице A, которые нужно сопоставить (не уверен, что это считается слишком большим), но вы имели в виду, что перед тем, как вытащить запрос, нужно сопоставить таблицу A с другим столбцом в таблице? Если это так, я хотел бы избежать этого шага, так как я пишу этот запрос для других, чтобы просто копировать и вставлять, когда они извлекают отчет. Если это не то, что вы имели в виду, можете ли вы уточнить? –