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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2012, 21:26   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию Выбрать только НЕ совподающие записи

Доброго времени!

Есть 2 таблицы:
Таблица 1:
1 2 3 4 5
6 7 8 9 10

Таблица 2:
1 2 3 4 5


Необходимо получить только:
6 7 8 9 10.

Сравнив эти 2 таблицы.

Вот что пробовал:
Код:
SELECT SOURCE3.TXT AS [Текст 1], SOURCE3.TXT2 AS [Текст 2], SOURCE3.D1 AS [Данные 1], SOURCE3.D2 AS [Данные 2], SOURCE3.D3 AS [Данные 3], SOURCE3.D4 AS [Данные 4], SOURCE3.D5 AS [Данные 5]
FROM SOURCE3 RIGHT JOIN COMPARE3 ON NOT (COMPARE3.TXT=SOURCE3.TXT) AND NOT (COMPARE3.TXT2=SOURCE3.TXT2);
В Source3 - всего 18 записей, в COMPARE3 - 7 записей.
По логке вещей, код должен выдать все из SOURCE3 чего нет в COMPARE3. Но выдает все что есть в обоих таблицах умножим их кол-во ~ на 3. В итоге 95 записей(дубликаты).

Где проблема?
Человек_Борща вне форума Ответить с цитированием
Старый 20.10.2012, 21:36   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
... FROM SOURCE3  WHERE NOT EXISTS(SELECT * FROM COMPARE3 WHERE COMPARE3.TXT=SOURCE3.TXT AND COMPARE3.TXT2=SOURCE3.TXT2)
В исходном запросе к каждой записи COMPARE3 добавятся записи из SOURCE3, для которых выполнилось условие.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.10.2012 в 21:50.
Аватар вне форума Ответить с цитированием
Старый 21.10.2012, 15:32   #3
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

а что надо получить при

Таблица 1:
1 2 3 4 5
6 7 8 9 10

Таблица 2:
1 2 3 4 5 11 12


Необходимо :
6 7 8 9 10 11 12

или нечто другое
или подобное невозможно
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 23.10.2012, 08:22   #4
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Попробуйте такой вариант:
Код:
SELECT c.pole1, c.pole2, c.pole4, c.pole5, c.pole6
FROM comp1 as c  left join comp2 as d on c.pole1&c.pole2&c.pole4&c.pole5&c.pole6 = d.pole1&d.pole2&d.pole4&d.pole5&d.pole6 
where d.pole1&d.pole2&d.pole4&d.pole5&d.pole6 is null;
Вложения
Тип файла: rar com.rar (9.9 Кб, 7 просмотров)
alvk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файлов, ищет только если выбрать диск HellMercenariess Общие вопросы Delphi 6 26.09.2012 21:47
Как выбрать из столбца множественных данных только единичные? Satsoobtraznyi Microsoft Office Excel 7 23.06.2011 10:49
datetimepicker выбрать только год Lokos Общие вопросы Delphi 3 22.06.2010 10:27
Выбрать повторяющиеся записи Andrei SQL, базы данных 2 13.09.2007 14:28