Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Поиск несовместимых значений


Автор: DZeus 8.12.2008, 11:19
Имеется набор записей в таблице tab1 (type, value, date)
t1 | a | дата1
t1 | b | дата1
t1 | b | дата2
t1 | c  | дата2
t1 | d | дата1
t1 | e | дата2
Имеется таблица tab2 (firstValue, secondValue) в которой описаны варианты НЕсовместимых значений
a | b
 c | e

Задача: Выбрать записи из первой таблицы, если в ней присутствуют несовместимые значения одного типа с одинаковой датой. 
Резульат: 
t1 | a | дата1
t1 | b | дата1
t1 | с  | дата2
t1 | е | дата2

Я реализовал этот запрос с помощью одного курсора, а возможно ли реализовать БЕЗ курсора?



Автор: Akina 8.12.2008, 11:43
Вот как оно будет в MS Access
Код

SELECT q1.type, q1.date, q1.tab1.value
FROM tab2, 
(
     SELECT tab1.type, tab1.date, tab1.value, tab1_1.value
     FROM tab1 
     INNER JOIN tab1 AS tab1_1 
        ON (tab1.date = tab1_1.date) 
       AND (tab1.type = tab1_1.type)
     WHERE (tab1_1.value)<>[tab1]![value]
) as q1
WHERE ((q1.tab1.value=[tab2]![firstValue]) 
  AND (q1.tab1_1.value=[tab2]![secondValue])) 
   OR ((q1.tab1.value=[tab2]![secondValue]) 
  AND (q1.tab1_1.value=[tab2]![firstValue]));

Автор: DZeus 8.12.2008, 12:30
Akina - красота, рабоает как часы =)))))))

Автор: Akina 8.12.2008, 12:43
 smile а с чего бы ему не работать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)