Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Неполный ключ  [new]
задачка_1111
Guest
Добрый день.
Имеется две таблицы, одна из таблиц содержит названия организаций, например:
Министерство Энергетики
Министерство Транспорта и Коммуникаций
Министерство Транспорта

Вторая таблица содержит некоторые коды и названия организаций в следующем виде:
1 Министерство Энергетики
2 Министерство Транспорта и Комм
3 Министерство Транспорта.

Задача - склеить две таблицы, но таким образом, чтобы названия министерств брались из первой таблицы, т.е.:
1 Министерство Энергетики
2 Министерство транспорта и коммуникаций
16 май 11, 17:40    [10660281]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
задачка_1111,

а склеивать как бош на душу положит? если нет то какая разница из какой таблицы брать названия если они должны быть равны?
16 май 11, 17:49    [10660346]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
Начинающий SQL 2008
Member

Откуда:
Сообщений: 438
задачка_1111,

Выполните Пункты 4 и 6
16 май 11, 17:50    [10660349]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
задачка_1111
Guest
Т.е. нужно искать в первой таблице названия из второй, и если такие есть, то уже склеивать, беря название из первой таблицы. Просто названия могут только частично совпадать.
16 май 11, 18:02    [10660440]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
Glory
Member

Откуда:
Сообщений: 104751
задачка_1111
Т.е. нужно искать в первой таблице названия из второй, и если такие есть, то уже склеивать, беря название из первой таблицы. Просто названия могут только частично совпадать.

Соединение таблиц может идти и по не строгу равенству. Например, по LIKE
16 май 11, 18:04    [10660451]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
задачка_1111
Просто названия могут только частично совпадать.
можно сравнивать оператором like
16 май 11, 18:04    [10660455]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
задачка_1111
Добрый день.
Имеется две таблицы, одна из таблиц содержит названия организаций, например:
Министерство Энергетики
Министерство Транспорта и Коммуникаций
Министерство Транспорта

Вторая таблица содержит некоторые коды и названия организаций в следующем виде:
1 Министерство Энергетики
2 Министерство Транспорта и Комм
3 Министерство Транспорта.

Задача - склеить две таблицы, но таким образом, чтобы названия министерств брались из первой таблицы, т.е.:
1 Министерство Энергетики
2 Министерство транспорта и коммуникаций
А третью строчку, почему не указали? Если ее по LIKE искать, она не найдется в первой таблице (т.к. имеет место точка "Министерство Транспорта.", а в первой таблице "Министерство Транспорта"), то что делать?
16 май 11, 19:20    [10660853]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
iljy
Member

Откуда:
Сообщений: 8711
задачка_1111,

вам че в итоге получить-то надо? Задача уж больно странная. Это какой-нибудь импорт? Там используйте SSIS, там есть Fuzzy Logic для таких случаев. Или ищите по форуму по словам "нечеткое сравнение".
16 май 11, 19:24    [10660874]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
задачка_1111
Guest
Имеется как бы две таблицы, в одной - полный список организаций с правильными названиями, во второй - база, которая заолнялась вручную, соответственно возможны опечатки и прочие беды, так надо сделать так, чтобы во второй базе все названия были без опечаток, а названия были взяты из первой базы.
А где можно подробнее узнать, как использовать Fuzzy Logic из SSIS?
17 май 11, 00:17    [10661832]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
А в первой табличке уникальный идентификатор есть?
17 май 11, 06:30    [10662329]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
iljy
Member

Откуда:
Сообщений: 8711
задачка_1111,

http://msdn.microsoft.com/en-us/library/ms345128(v=sql.90).aspx
17 май 11, 08:50    [10662488]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
задачка_1111
Имеется как бы две таблицы, в одной - полный список организаций с правильными названиями, во второй - база, которая заолнялась вручную, соответственно возможны опечатки и прочие беды, так надо сделать так, чтобы во второй базе все названия были без опечаток, а названия были взяты из первой базы.
Если по названиям, то нельзя.

Обычно делают какого-то "помошника", который определяет наиболее вероятные совпадения (например, как говорили, по Like), а оставшиеся данне обрабатывает человек.

Или добиваются изменения схемы данных, вводя коды, идентификаторы.
17 май 11, 08:53    [10662498]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
задачка_1111
Guest
Да, в первой таблице есть ключи, во второй - нет.
Первичный поиск сделал оператором LIKE, однако, что естественно, нашлись не все совпадения. Остальные искать только ручками?
17 май 11, 11:28    [10663415]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
задачка_1111
Да, в первой таблице есть ключи, во второй - нет.
Первичный поиск сделал оператором LIKE, однако, что естественно, нашлись не все совпадения. Остальные искать только ручками?
Разумеется. Можно только совершенствовать алгоритм, увеличивая количество найденных совпадений (при этом будет увеличиваться количество неправильно найденных совпадений), но полностью правильного поиска сделать невозможно.

Таких программ и компьютеров ещё не придумали :-)
17 май 11, 11:34    [10663448]     Ответить | Цитировать Сообщить модератору
 Re: Неполный ключ  [new]
задачка_1111
Guest
Спасибо :)
А стоит ли попробовать решить эту задачу средствами SSIS, а именно Нечетким уточняющим запросом, может ли он принести лучшие результаты?
17 май 11, 11:49    [10663560]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить