Имя: Пароль:
1C
 
Как выполнить сравнение двух таблиц (результатов запросов)
0 Alsh
 
20.06.07
17:00
Всем привет!

Есть два запроса
Первый запрос выводит поле Размер1
Второй запрос выводит поле Размер2

Вопрос:
Как ПРАВИЛЬНО провести сравнение результатов этих запросов и в результирующую таблицу вывести только те значения, которые НЕ ВОШЛИ в результаты обоих запроса. Т.е. те значения которые:
1. вошли в результат первого запроса, но не вошли в результат второго,
2. вошли в результат второго запроса, но не вошли в результат первого.

Заранее спасибо!
1 klass
 
20.06.07
17:03
берешь общую кучу и сравнив с Размер 1, если совпало, то выбрасываешь и т.д., далее оставшуюся кучу с Размер2 и аналогично, оставшаяся куча необходимые данные
2 sapphire
 
20.06.07
17:06
(0) Прочитай про объединения (join) запросов, можно даже SQL
3 Alsh
 
20.06.07
21:36
(1) так я сам умею, но чувствую, что это не совсем правильно..
(2) ОБЪЕДИНИТЬ или ОБЪЕДИНИТЬ ВСЕ - просто объединяют, а соединения такого нет. Чувствую, что нужно через NULL, но чет мозг дальше не хочет думать....
4 Alsh
 
20.06.07
21:43
Наверное нужно сделать ПОЛНОЕ СОЕДИНЕНИЕ, а потом в выборке, перебрать и те, которые имеют соседнее значение NULL - перекинуть в массив...
5 ottto
 
20.06.07
21:47
Веселое решение :)
Добавить еще поле 1
Объединить запросы сгруппировать по Результат, а поле 1 суммироать. все это во вложеном запросе. А условие на вложеный запрос естественно = 2
Ну т.е.

ВЫБРАТЬ Результат
ИЗ (ВЫБРАТЬ Результат КАК Результат,
       СУММА(ВложенныйЗапрос.Сч) КАК Сч
   ИЗ (ВЫБРАТЬ
       Результат1 КАК Результат,
       1 КАК Сч  ИЗ Таб1
       ОБЪЕДИНИТЬ ВСЕ
       ВЫБРАТЬ
       Результат2,
       1
       ИЗ Таб2) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.Результат) КАК ВложенныйЗапрос
ГДЕ
   ВложенныйЗапрос.Сч = 2
6 Alsh
 
20.06.07
21:52
(5) Отличное решение!
Спасибо!
7 Neco
 
20.06.07
23:09
Простое решение:

ВЫБРАТЬ
   ЕСТЬNULL(Результат1, Результат2) КАК Результат
ИЗ
   Таблица1 ПОЛНОЕ СОЕДИНЕНИЕ Таблица2
   ПО Результат1 = Результат2
ГДЕ
   (Результат1 ЕСТЬ NULL ИЛИ Результат2 ЕСТЬ NULL )
8 sapphire
 
20.06.07
23:11
(3) ну извини, раз читать не хочешь и думать то же, то помочь ни чем не могу.
9 Alsh
 
21.06.07
08:49
(7) Спасибо, именно такое решение я и искал!