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

Откуда:
Сообщений: 4
Доброго времени суток
Есть 3 таблицы: Организации (они отчисляют деньги в фонды) - ID_фонда, его местоположение; Фонды - ID_фонда и его местоположение; таблица Отчисления (хранятся данные о переводах организации в фонд) - ID_организации, ID_фонда и прочая инфа об отчислении организацией в фонд
Нужно найти такие фонды, в которые отчисляют из всех городов.
Собственно, вопрос в том, как это сделать, так как на ум приходит нечто из области посчитать все города, из которых отчисляют (для каждого фонда), затем сравнить с общим числом городов, а это, в свою очередь выливается в SELECT COUNT(.....) = SELECT COUNT(.....), что вызывает проблему:(
22 ноя 11, 14:24    [11637821]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
select
 t1.ID_Фонда
from
 Отчисления t1 join
 Организации t2 on t2.ID_Организации = t1.ID_Организации
group by
 t1.ID_Фонда
having
 count(distinct t2.Город) = (select count(distinct Город) from Организации)
22 ноя 11, 14:30    [11637873]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
aleks2
Guest
1. Низзя думать так тупо.
2. Противоположность "фонды, в которые отчисляют из всех городов" - "отсутствие отчислений хотя бы из одного"
3. И сразу вместо SELECT COUNT(.....) банальное exists().
22 ноя 11, 14:31    [11637883]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Leum,

Надо выбрать фонды, для которых не существует (NOT EXISTS) городов, из которых нет отчислений в эти фонды.
Никаких COUNT
22 ноя 11, 14:31    [11637886]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить