Сложные запросы

12/20/2009, автор dimaz, категории Web-разработка

Таблицы в БД.

Таблицы в документе doc

База в sql

Примеры решений сложных запросов:

1. Вывести название и количество порций каждого блюда, заказанного сегодня на столик с номеромselect produkt
from produkty
where pr in(
select sostav.pr
from sostav inner join  menu on (sostav.rec = menu.rec)
group by sostav.pr
having  count(distinct sostav.rec)
=  (
select count(distinct sostav.rec)
from sostav inner join  menu on (sostav.rec = menu.rec)
)
)
2.  Вывести название и количество порций каждого блюда, заказанного сегодня на столик с номером 1. (Обязательно использование JOIN). select bluda.bluda, sum(zakazy.k_vo_porc)
from mesta
inner join zakazy on (mesta.ms = zakazy.ms)
inner join menu on (zakazy.m = menu.m)
inner join bluda on (menu.bl = bluda.bl)
where nom_stol = 1
group by bluda.bluda
3.    Выдать названия блюд, в которых используются продукты, поставляемые только поставщиком ‘Урожай’ и не поставляемые никаким другим поставщиком (Обязательно использование JOIN).
select bluda.bluda
from bluda inner join recepty
on (bluda.bl = recepty.bl)
where recepty.rec in (
select sostav.rec
from sostav
where sostav.rec in (
select postavki.pr
from postavki
where ps in (select ps from postavschiki where nazvanie = 'Урожай')
and pr in (
select postavki.pr
from postavschiki inner join postavki
on (postavschiki.ps = postavki.ps)
group by postavki.pr
having count(postavki.ps)=1
)
)
group by sostav.rec
having count(sostav.pr) in (
select postavki.pr
from postavki
where ps in (select ps from postavschiki where nazvanie = 'Урожай')
and pr in (
select postavki.pr
from postavschiki inner join postavki
on (postavschiki.ps = postavki.ps)
group by postavki.pr
having count(postavki.ps)=1
)
)
)

Читать похожие статьи:

Теги:  

Комментарии закрыты.