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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2010, 10:44   #1
Kingson
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 18
По умолчанию Как из одной таблицы удалить записи, содержащиеся в другой

Здравствуйте!
Подскажите, пожалуйста.
Имеются две таблицы, по тридцать полей в каждой.
Ключевое поле не задано.
Задача: удалить из таблицы 1 все записи, значения полей которых совпадают с значениями полей одной из записей таблицы 2.
По моему понятно объяснил.
Хотелось бы оформить в виде SQL запроса.
Kingson вне форума Ответить с цитированием
Старый 09.04.2010, 19:19   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Kingson.
для решения подобных задач используются зарезервированные слова EXISTS или NOT EXISTS. Найти информацию можно в справочной системе MS Access, в учебнике или на сайте производителя.

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 12.04.2010, 19:31   #3
Kingson
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 18
По умолчанию

Здравствуйте, Евгений!
Я составил такой вот запрос:
SELECT *
FROM Старая
WHERE EXISTS
(SELECT * FROM Разностная, Старая
WHERE Разностная.N_OKATO=Старая.N_OKATO AND
Разностная.FULLNAME=Старая.FULLNAME AND
Разностная.СТАТУС=2)
По моей логике я должен получить список из таблицы Старая, куда входят лишь записи присутствующие в списке из подчиненного запроса.
Подчиненный запрос действительно работает. А вот в итоге я получаю полную таблицу Старая. Не понимаю почему.
Kingson вне форума Ответить с цитированием
Старый 12.04.2010, 20:09   #4
Kingson
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 18
По умолчанию

Одну ошибку я, кажется, нашел.
Выбросил Старую из подчиненного запроса. В результате:
SELECT *
FROM Старая
WHERE EXISTS
(SELECT * FROM Разностная
WHERE Разностная.N_OKATO=Старая.N_OKATO AND
Разностная.FULLNAME=Старая.FULLNAME AND
Разностная.СТАТУС=2)
И компьютер задумался. Вот уже минут двадцать думает.
А ведь мне бы неплохо еще по 28 полям сравнить.
Kingson вне форума Ответить с цитированием
Старый 13.04.2010, 22:39   #5
Skolot
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 101
По умолчанию

Я бы сделала так (плохо знаю SQL): Объединить обе таблицы (предварительно сделав копии). А потом использовать системный запрос Find Duplicate Query Wizard. Результатом запроса будет таблица с повторяющимися записями и будет создано поле, в котором указывается, сколько раз повторяется запись.
Повторяющиеся записи легко увидеть после сортировки исходной таблицы. Ну. и удалить ненужное. Если нужно обязательно SQL - автоматически составленный запрос на SQL можно посмотреть и добавить вручную, что надо.
Skolot вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение одной таблицы из другой Ольга Ларина Microsoft Office Excel 8 08.02.2010 19:10
авт. перенос данных из нескольких столбцов одной таблицы в один столбец другой таблицы A_ALL Microsoft Office Access 7 24.08.2009 21:13
Как переносить часть записи из одной таблийы в подстановочное поле другой? Andr_zdes Помощь студентам 2 22.05.2009 10:37
Отбор данных из одной таблицы и создание из них другой!!! HuLiGaN Microsoft Office Excel 16 31.03.2009 03:28
Заполнение одной таблицы данными из другой melok_s Microsoft Office Excel 7 20.11.2008 03:56