Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Хитрый запрос SQL  [new]
babken
Member

Откуда:
Сообщений: 80
Есть таблица:
Код - счетчик
f1
f2
f3
f4

SELECT f1, f2, f3
FROM tmp
GROUP BY f1, f2, f3
HAVING count(f1)>1 And count(f2)>1 And count(f3)>1;

По этому запросу, получаем поля f1,f2,f3 совокупность которых в таблице не уникальна. Мне же нужно получить набор строк Код,f1,f2,f3 где совокупность f1,f2,f3 не уникальна. Возможно ли это сделать?

С уважением,
9 авг 07, 14:28    [4502592]     Ответить | Цитировать Сообщить модератору
 Re: Хитрый запрос SQL  [new]
babken
Member

Откуда:
Сообщений: 80
Упс... Ошибочка вышла. Тему надо перенести в MS ACCESS.

С уважением,
Модератор:
Перенесено по просьба автора топика
9 авг 07, 14:35    [4502688]     Ответить | Цитировать Сообщить модератору
 Re: Хитрый запрос SQL  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27486
Select Kod, f1,f2,f3
From tmp,
(SELECT f1, f2, f3
FROM tmp
GROUP BY f1, f2, f3
HAVING count(f1)>1 And count(f2)>1 And count(f3)>1) tt,
tmp Left Join tt
On tmp.f1=tt.f1 and tmp.f2=tt.f2 and tmp.f3=tt.f3
9 авг 07, 15:29    [4503204]     Ответить | Цитировать Сообщить модератору
 Re: Хитрый запрос SQL  [new]
babken
Member

Откуда:
Сообщений: 80
Попробовал Ваше решение. Он преобразовал его в:
SELECT Kod, f1, f2, f3
FROM tmp LEFT JOIN [SELECT f1, f2, f3
FROM tmp
GROUP BY f1, f2, f3
HAVING count(f1)>1 And count(f2)>1 And count(f3)>1]. AS tt ON tmp.f1=tt.f1 and tmp.f2=tt.f2 and tmp.f3=tt.f3;

и вернул мне ошибку: Ссылка на f1 может относиться к нескольким таблицам.

С уважением,
9 авг 07, 20:32    [4505016]     Ответить | Цитировать Сообщить модератору
 Re: Хитрый запрос SQL  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27486
В такой вид акс преобразовать не может. Видимо, вы удалили квадратные скобки и точку после закрывающей квадратной скобки. Так акс, действительно преобразует вложенные запросы.

Имейте в виду, скобки которыми я ограничил внутренний Select, являются необходимыми частями синтаксиса вложенных запросов, без них, разумеется, будет ошибка
9 авг 07, 20:57    [4505063]     Ответить | Цитировать Сообщить модератору
 Re: Хитрый запрос SQL  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27486
Предыдущий пост неверен.

Виноват, не досмотрел. Надо изменить первую строку
SELECT tmp.Kod, tmp.f1, tmp.f2, tmp.f3

Действительно, там была неопределенность.
9 авг 07, 21:00    [4505075]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить