Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как выбрать не совпадающие данные? / 8 сообщений из 8, страница 1 из 1
03.03.2009, 11:22
    #35847759
de_toros
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать не совпадающие данные?
Привет всем! Вопрос очень прост, но я не могу найти решения.
В общем даны две таблицы. В каждой из них есть столбец "FIO", где, соответственно, перечислены список ФИО людей. В первой таблице (главной) приведен кооректный список людей, во второй есть "лишние" ФИО, не совпадающие с первой таблицей. Соответсвенно вопрос, как вычислить этих лишних людей, например методом запроса.
Понимаю, что вопрос простейший и часто встречающийся, но я мало и редко работаю в VisualFoxPro, поэтому для меня это сложно.
...
Рейтинг: 0 / 0
03.03.2009, 11:35
    #35847795
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать не совпадающие данные?
Как вариант что-то типа
Код: plaintext
1.
select * from table2 where table2.fio not in (select fio form table1)
...
Рейтинг: 0 / 0
03.03.2009, 11:38
    #35847801
ping_09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать не совпадающие данные?
select field1;
from table1;
where not exsist(select field1 from table2 where field1.table1==field1.table2)
...
Рейтинг: 0 / 0
03.03.2009, 12:08
    #35847899
de_toros
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать не совпадающие данные?
-=AlexiS=-,
Всем спасибо, остановился на варианте от =AlexiS=.
Теперь возникла другая проблема. В общем, в обоих столбцах, первой и второй таблицы, встречаются ФИО состоящие только из заглавных букв, остальные имеют заглавные буквы только перед началом фамилии, имени или отчества. Т.е. если в одной таблице встречается ФИО написанный только заглавными буквами, а во второй тоже самое ФИО написано корректно (т.е. заглавная буква в только начале слова), то FoxPro увидит эти записи, как не совпадающие.
Как сделать так, чтоб FoxPro не обращал внимания на заглавные буквы, а сравнивал ФИО только по набору фактических символов.
...
Рейтинг: 0 / 0
03.03.2009, 12:23
    #35847944
de_toros
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать не совпадающие данные?
ping_09,
А в вашей команде FoxPro почему то выдает ошибку: "function name is missing)." Что может быть не правильно?
...
Рейтинг: 0 / 0
03.03.2009, 12:48
    #35848021
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать не совпадающие данные?
Примените функцию upper()
т.е.
Код: plaintext
select * from table2 where upper(table2.fio) not in (select upper(fio) form table1)
а ping_09 просто "очепятался" должно быть exist
...
Рейтинг: 0 / 0
03.03.2009, 13:09
    #35848082
darkbird81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать не совпадающие данные?
de_toros
Как сделать так, чтоб FoxPro не обращал внимания на заглавные буквы, а сравнивал ФИО только по набору фактических символов.

да вроде никак. разве что преобразовывать текст к какому-то одному виду, как пишет -=AlexiS=-. но имхо это есть плохой путь, т.к. кто его знает, может там вообще в фамилии ошибка будет? да и если БД немаленькая, то долго будет работать.
лучше сравнивать не фамилии, а уникальные поля, соотв. этим фамилиям, например табельный или идентификационный номер.
...
Рейтинг: 0 / 0
03.03.2009, 13:33
    #35848159
de_toros
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать не совпадающие данные?
-=AlexiS=-,

Большое спасибо, все отлично получилось!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как выбрать не совпадающие данные? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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