Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2011, 05:51   #1
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию Создание запроса.

Доброго дня.
Прошу прощения за возможно глупый вопрос. Необходимо создать запрос который сравнивает две базы данных и выводит записи имеющиеся в одной базе но отсутствующие в другой. Критерий отбора по одному полю.
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 28.02.2011, 12:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) не путайте понятия база данных и таблица. Это очень разные вещи.

2) если речь идёт о таблицах, то поможет простейший запрос:
Код:
select * from Table1 where ОдноПоле not in (select ОдноПоле from Table2)
Выберет все записи из таблицы 1, которых нет в таблице 2 (Вниимание! проверяется наличие значений ТОЛЬКО ОДНОГО поля!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.02.2011, 16:37   #3
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Вы правы на счет базы неправильно выразился. У меня есть две таблицы izbir и izbir1234 Эти таблицы никак между собой не связаны, в них одинаковые поля Cod_izber
Запрос тогда выглядит вот так (если я правильно понял) select * from izbir where Cod_izber not in (select Cod_izber from izbir1234). Но вот куда это вставлять не могу понять, пробовал в построитель выражений, толку нет, может быть таблицы нужно связать между собой?
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 28.02.2011, 17:32   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

создать запрос (через конструктор, например). Потом правой кнопкой мышки на поле запроса - выбрать "SQL ..." перейдёте в SQL режим - ну туда и вставьте Ваш запрос.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.02.2011, 18:48   #5
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Попробовал висит уже минут тридцать в базе 60 тыс. записей проверить нужно 14 тыс. это нормально по времени или что-то не так?
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 28.02.2011, 21:06   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте atenon.
гораздо быстрее конструкции предложенной Сергеем, будет работать подобный вариант:
Код:
SELECT izbir.* 
FROM izbir LEFT JOIN izbir1234 ON izbir.Cod_izber = izbir1234.Cod_izber 
WHERE (izbir1234.Cod_izber) Is Null
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 01.03.2011, 06:13   #7
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Спасибо Евгений запрос работает, но только одна проблема, отловилось около 600 записей, но если искать вручную (по полю Cod_izber) то многие из этих записей присутствуют в обоих таблицах. Cod_izber - текстовой в обоих таблицах, вообще содержит 12 цифр. В чем может быть причина?
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 01.03.2011, 08:59   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

atenon, что значит "..отловилось около 600 записей, .. присутствуют в обоих таблицах.."
Ваше первоначальное условие "..имеющиеся в одной базе но отсутствующие в другой.." уже не актуально?
Для верности (без разночтений), сформулируйте окончательное требование к запросу и выложите архив с БД,

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 01.03.2011, 14:56   #9
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Спасибо большое, сам напутал с таблицами все работает!!
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание запроса.. BROOKS Помощь студентам 0 21.12.2009 13:51
Создание запроса в БД .Phoenix БД в Delphi 8 04.12.2009 16:12
Создание Сложного запроса chugo Microsoft Office Access 3 13.11.2009 15:28
Создание запроса gfadssa11 Microsoft Office Access 0 06.11.2009 23:00
Создание запроса PR0Z0N Microsoft Office Access 2 25.10.2009 16:11