Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Gtsroger Гость
|
Добавлено: Вс Июн 06 2004 14:41 Заголовок сообщения: Помогите с запросом |
|
|
Есть некоторая таблица следующего вида:
Code Access_type
1 Адм
1 Опер
2 Опер
3 Адм
3 Опер
4 Адм
4 Бух
По идее, у каждого кода (Code) должен быть Access_type Адм,Опер или Бух. Необходимо сделать запрос, выдающий все коды, которые не имеют хотя бы одного из (Адм, Бух, Опер), при этом по этим кодам должны выводиться все имеющиеся Access_type-ы. Помогите, просто не знаю как подступиться. |
|
Вернуться к началу |
|
|
AndyC Гость
|
Добавлено: Пн Июн 07 2004 09:51 Заголовок сообщения: |
|
|
Если я правильно понял вопрос, то нечто похожее на:
select distinct aa.id,a1.ac from a aa, a a1 where
not exists (select * from a ad where ad.id=aa.id and ad.ac=a1.ac )
and a1.ac is not null
order by 1,2
Весьма не оптимально... |
|
Вернуться к началу |
|
|
wildwind
Зарегистрирован: 03.02.2004 Сообщения: 268 Откуда: Москва
|
Добавлено: Пн Июн 07 2004 14:57 Заголовок сообщения: |
|
|
Первая задача (только коды) решается так:
Код: | select Code from t
group by Code
having count(Access_type) < 3
|
Чтобы вывести имеющиеся типы доступа, делаем так:
Код: | select Code, Access_type from avm_t
where code in (select Code from t
group by Code
having count(Access_type) < 3)
order by Code, Access_type
|
Конечно этот запрос не даст коды, не имеющие ни одного типа, но это уже проблема другого рода... |
|
Вернуться к началу |
|
|
|