12.08.2009, 16:00
общий
это ответ
Здравствуйте, Sov.
Ответ в приложении. Проверен на FireBird 2.0, хотя системно-зависимым является только LEFT OUTER JOIN, то есть должно идти и на других СУБД.
Три разных способа извлечения: ALL, EXISTS, IN применил умішленно, можно было бьі обойтись только использованием EXISTS / NOT EXISTS
Приложение:
select o.id_user, u.surname, u.name, u.patronymic
from orders o
left outer join users u on o.id_user = u.id_user
where o.id_product in
(
select p.id_product from products p
where p.id_catalog =
(
select c.id_catalog from catalogs c
where c.name = 'Жёсткие диски'
)
)
group by o.id_user, u.surname, u.name, u.patronymic
having sum(o.number)>=all
(
select sum(o.number)
from orders o
where o.id_product in
(
select p.id_product from products p
where p.id_catalog =
(
select c.id_catalog from catalogs c
where c.name = 'Жёсткие диски'
)
)
group by o.id_user
)
5
Спасибо,проверено в mysql,работает)