Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / обновить записи в таблице данными из другой, совпадающие по Like / 25 сообщений из 27, страница 1 из 2
20.07.2019, 18:34
    #39839607
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Добрый день.
Задача вроде простая - но не уверен что ее возможно решить только с помощью запроса.
С помощью перебора макросом - без проблем. но не красиво и лишние действия.

есть две таблицы.
Одна имеет вид

ФИО Имя

Бойчура Николай Степанович Николай
Охрименко Алексей Охрименко Алексей

вторая - просто перечень имен.

Нужно чтобы в первой таблице в поле Имя вписалось взятое из ФИО - при условии что оно есть во второй таблице.

Буду благодарен если подскажете возможно ли вообще такое и как так сделать, если возможно.
Спасибо.
...
Рейтинг: 0 / 0
20.07.2019, 18:42
    #39839608
ИВП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezar,
Что-то непонятно.
В первой таблице два поля: ФИО и Имя
Заполнено только ФИО ?
А Имя сейчас пустое, его надо заполнить из второй таблицы при условие что оно там есть?
А если во второй таблице его нет - то что?
...
Рейтинг: 0 / 0
20.07.2019, 19:24
    #39839612
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezar,

Nz + Like
...
Рейтинг: 0 / 0
20.07.2019, 19:38
    #39839613
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
ИВПNezar,
Что-то непонятно.
В первой таблице два поля: ФИО и Имя
Заполнено только ФИО ?
А Имя сейчас пустое, его надо заполнить из второй таблицы при условие что оно там есть?
А если во второй таблице его нет - то что?
да, немного по дурацки объяснил
все верно.
а если нет - то ничего.
вообще задача повытаскивать из ФИО имена.
но т.к. там не всегда полное ФИО и не всегда один и тот же порядок написания -то в голову пришло только сравнивать с таблицей имен.
...
Рейтинг: 0 / 0
20.07.2019, 19:41
    #39839615
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
vmagNezar,

Nz + Like
спасибо конечно.
про Like я писал. в Nz вроде пока нет необходимости.
поэтому вопрос - как Это помогает мне решить мою проблему?
...
Рейтинг: 0 / 0
20.07.2019, 20:23
    #39839617
ИВП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezar,
В таблице2 присутствуют все существующие имена?
Есть ли там, например, ЕЛПЕДИФОР (старинное русское имя) или Васисуалий?
Бикинду Пембет Блондел Хорес - вот такая студентка учится в российском вузе. Как тут быть?
...
Рейтинг: 0 / 0
20.07.2019, 20:50
    #39839618
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
ИВПNezar,
В таблице2 присутствуют все существующие имена?
Есть ли там, например, ЕЛПЕДИФОР (старинное русское имя) или Васисуалий?
Бикинду Пембет Блондел Хорес - вот такая студентка учится в российском вузе. Как тут быть?
конечно же нет.
думаю это не реально.
просто если не найдет - то внесу ручками или на кнопку повешу.
вероятность такого - не большая, поэтому не критично.
...
Рейтинг: 0 / 0
20.07.2019, 23:50
    #39839636
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezarно т.к. там не всегда полное ФИО и не всегда один и тот же порядок написания -то в голову пришло только сравнивать с таблицей имен.Не понятно какая при этом решается задача(может при другом подходе она элементарна).
Как быть с одним из основных правил "базостроения"(нарушая их,иногда, не возможно добиться желаемого результата)-поле должно содержать минимальную единицу информации: ФИО это не одно поле а целых три:фамилия,имя,отчество.Таблица имен (а зачем она нужна)-не понятно,однако.Nezar....просто если не найдет - то внесу ручками или на кнопку повешу.
вероятность такого - не большая, поэтому не критично.А может просто иметь таблицу клиентов (сотрудников и т.п.) и подчиненную ей заказы(ведомость,накладная и т.п) в которую вносить код таблицы со стороны 1-как, обычно, и делается
...
Рейтинг: 0 / 0
21.07.2019, 11:19
    #39839665
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
sdkuНе понятно какая при этом решается задача(может при другом подходе она элементарна).
Как быть с одним из основных правил "базостроения"(нарушая их,иногда, не возможно добиться желаемого результата)-поле должно содержать минимальную единицу информации: ФИО это не одно поле а целых три:фамилия,имя,отчество.Таблица имен (а зачем она нужна)-не понятно,однако.

я вроде описал выше задачу. повторюсь.
"вообще задача повытаскивать из ФИО имена.
но т.к. там не всегда полное ФИО и не всегда один и тот же порядок написания -то в голову пришло только сравнивать с таблицей имен."
посему ну вообще не понял к чему вы это написали )) извините.

sdkuА может просто иметь таблицу клиентов (сотрудников и т.п.) и подчиненную ей заказы(ведомость,накладная и т.п) в которую вносить код таблицы со стороны 1-как, обычно, и делается

Это точно ответ на вопрос этой темы? ))
...
Рейтинг: 0 / 0
21.07.2019, 12:23
    #39839671
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
NezarОдна имеет вид

ФИО Имя


А Вы слышали что-нибудь про излишествующие данные?
Nezarя вроде описал выше задачу. повторюсь.
"вообще задача повытаскивать из ФИО имена.Это не описание задачи,а описание того как Вы криво пытаетесь решить неведомую задачу при неправильно спроектированной таблице
(при правильно спроектированной,из 3 полей,таблице имена из неё извлекаются простейшим запросом-даже извлекать не надо,а просто сгруппировать данные поля [имя])Nezar...Это точно ответ на вопрос этой темы? ))Да (более точно и конкретно можно ответить зная решаемую задачу)
...
Рейтинг: 0 / 0
21.07.2019, 13:24
    #39839674
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
sdku,

вроде много постов , а ответы ну вообще не о чем.

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

я не знаю как Вам нужно объяснить что у меня есть таблица с Двумя полями. где ФИО в Одном поле. да такое бывает - в таком виде выдает данные АПИ службы доставки. А в поле Имя нужно каким либо способом внести имя из ФИО.
мой способ я описал. Вы считаете его кривым? Возможно, тем более я сам про это говорил. Но я другого не знаю. Впрочем как и Вы, видимо.
и нет там ни подчиненных таблиц ни ведомостей ни чего то другого, что Вы пытаетесь почему то сюда привязать.

поэтому если Вы до сих пор не смогли понять даже задачу - то смиритесь. или игнорьте эту тему, как Вам больше нравится.

я не обижусь, и тем более не расстроюсь. Т.к. вижу что видимо это сложно для Вас.

п.с. "вообще задача повытаскивать из ФИО имена." - Вы мило процитировали эту фразу и сказали что это не описание задачи, а описание решения. Что, серьезно? ))
...
Рейтинг: 0 / 0
21.07.2019, 14:42
    #39839678
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezar,

Код: sql
1.
UPDATE Таблица1 INNER JOIN Таблица2 ON Таблица1.ФИО Like "*" & Таблица2.Имя & "*" SET Таблица1.Имя = Таблица2.Имя
...
Рейтинг: 0 / 0
21.07.2019, 14:53
    #39839679
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
__Michelle,

Спасибо! То что надо )

...Нужно поучить sql...
...
Рейтинг: 0 / 0
21.07.2019, 14:57
    #39839680
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezar,

Но это ненадежный способ.

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

То же самое касается и фамилий, начала которых совпадают с именами во второй таблице, Иван ов и т.п.
...
Рейтинг: 0 / 0
21.07.2019, 15:22
    #39839682
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
__Michelle,

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

Код: sql
1.
UPDATE Заказы INNER JOIN Имена ON " " & Заказы.ФИО & " " Like "* " & Имена.Имена & " *" SET Заказы.Имя = Имена.Имена;
...
Рейтинг: 0 / 0
21.07.2019, 15:28
    #39839683
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezarтеперь все гуд

Сомневаюсь, что все.
А если отчества нет, откуда пробел конечный возьмется?
...
Рейтинг: 0 / 0
21.07.2019, 15:30
    #39839684
ИВП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
__Michelle,

Надо находить первый пробел в ФИО и от него смотреть имя
...
Рейтинг: 0 / 0
21.07.2019, 15:34
    #39839685
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
ИВП,

Нет.
Имени тоже может не быть.
Или фамилии.

Надо так:
Код: sql
1.
2.
UPDATE Таблица1 INNER JOIN Таблица2 ON " " & [Таблица1].[ФИО] & " " Like "* " & [Таблица2].[Имя] & " *" 
SET Таблица1.Имя = [Таблица2].[Имя];
...
Рейтинг: 0 / 0
21.07.2019, 15:49
    #39839687
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
__MichelleИВП,

Нет.
Имени тоже может не быть.
Или фамилии.

Надо так:
Код: sql
1.
2.
UPDATE Таблица1 INNER JOIN Таблица2 ON " " & [Таблица1].[ФИО] & " " Like "* " & [Таблица2].[Имя] & " *" 
SET Таблица1.Имя = [Таблица2].[Имя];



так я же так и сделал ))

UPDATE Заказы INNER JOIN Имена ON " " & Заказы.ФИО & " " Like "* " & Имена.Имена & " *" SET Заказы.Имя = Имена.Имена;
...
Рейтинг: 0 / 0
21.07.2019, 15:50
    #39839688
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
ИВП__Michelle,

Надо находить первый пробел в ФИО и от него смотреть имя
не подходит, потому что иногда имя идет первым, а потом фамилия. там вообще данные приходят дико намешанные
...
Рейтинг: 0 / 0
21.07.2019, 16:03
    #39839691
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezarтак я же так и сделал ))

Простите, не заметила, что к ФИО тоже пробелы приделаны " " & Заказы.ФИО & " ".
Все верно.)))
...
Рейтинг: 0 / 0
21.07.2019, 16:09
    #39839692
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
Nezarне подходит, потому что иногда имя идет первым, а потом фамилия. там вообще данные приходят дико намешанныеА такие данные надо ПОДГОТАВЛИВАТЬ к экспорту т.к. иначе нужен искусственный интеллект,который еще не придумали....Если же пользоваться доступными методами результат на 100% верный ,в силу "намешанных" данных и не предусмотренных случаев,типа двойного имени у иностранцев(а может и граждан России),совпадение начальных букв отчества и имени и т.д и т.п-все предусмотреть весьма проблематично,не удастся.А надеяться на "авось"-не наш метод
...
Рейтинг: 0 / 0
21.07.2019, 16:28
    #39839693
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
sdkuNezarне подходит, потому что иногда имя идет первым, а потом фамилия. там вообще данные приходят дико намешанныеА такие данные надо ПОДГОТАВЛИВАТЬ к экспорту т.к. иначе нужен искусственный интеллект,который еще не придумали....Если же пользоваться доступными методами результат на 100% верный ,в силу "намешанных" данных и не предусмотренных случаев,типа двойного имени у иностранцев(а может и граждан России),совпадение начальных букв отчества и имени и т.д и т.п-все предусмотреть весьма проблематично,не удастся.А надеяться на "авось"-не наш метод

как я уже сказал - эти данные выдает почта, к которой я вообще никакого отношения не имею.
а народ когда формы почтовые заполняет иногда вместо имени и номер телефона может влепить и адрес.
но на все это я никак повлиять не могу. мне поступают голые данные, одной строкой.
и даже если бы изначально ФИО билось на три поля - это бы не было гарантией что в поле Имя будет именно имя, а не что то другое.
Нестандартные имена редко попадаются. поэтому не проблема внести в таблицу в ручную.
с возникновением ошибок, будет уменьшаться количество ошибок ))
...
Рейтинг: 0 / 0
21.07.2019, 17:00
    #39839694
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
sdku....Если же пользоваться доступными методами результат на 100% верный ....получить не удастся.Ваша проблема не в том чтоб сравнить данные двух таблиц, а в том чтоб выделить имя из "мешанины"-лично я не вижу решения этой задачи кроме как вручную готовить данные
...
Рейтинг: 0 / 0
21.07.2019, 17:38
    #39839695
Nezar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обновить записи в таблице данными из другой, совпадающие по Like
sdkusdku....Если же пользоваться доступными методами результат на 100% верный ....получить не удастся.Ваша проблема не в том чтоб сравнить данные двух таблиц, а в том чтоб выделить имя из "мешанины"-лично я не вижу решения этой задачи кроме как вручную готовить данные
не страшно
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / обновить записи в таблице данными из другой, совпадающие по Like / 25 сообщений из 27, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]