Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
44
Добавлен:
02.05.2014
Размер:
115.2 Кб
Скачать

Билет 1

5) Извлечь все пары продуктов с одинакорвой калорийностью: название, код, калорийность. Упорядочить по калорийности, потом по названию.

Блюдо( НомерБлюда, НазвБл, Категория)

Продукт(НомерПрод, НазвПрод, Калорийность)

Рецепт( НомерБлюда, НомерПрод, КолПродВБлюде)

5) Извлечь все пары поставщиков из одного города, такие, что статус второго поставщика не меньше статуса первого. Для каждого напарника указать код, название, статус. Для паоставщиков, не имеющих пары, значения напарника – Null. Рез-тат упорядочить по названиям поставщиков.

Поставщик ( КодПост, НазвПост, Статус, Город);

Товар ( КодТовара, НазвТовара, Вес, Цвет, Город);

Поставка ( КодПост, КодТовара, Количество)

РЕШЕНИЕ:

Select x.КодПост, x.НазвПост, x.Статус, y.КодПост, y.НазвПост, y.Статус

From Поставщик x left outer join Поставщик y

on ( x.Город=y.Город and x.Статус=y.Статус and x.КодПост=y.КодПост)

Order by x.НазвПост, y.НазвПост

Билет 3.

5. Построить SQL-запрос для выборки сведений из БД, содержащей таблицы:

Блюдо (КодБл, НазвБл, Категория) – справочник блюд;

Продукт (КодПрод, НазвПрод, Калорийность) – справочник продуктов;

Рецепт (КодБл, КодПрод, КолПродВБл) – сколько данного продукта в данном блюде.

Извлечь коды и названия всех блюд, для которых либо вовсе не указаны входящие в него продукты, либо указан всего один продукт, причем такой, что калорийность его ниже 50 ед. Результат упорядочить по названиям блюд.

РЕШЕНИЕ:

SELECT Код Бл, Назв Бл

FROM Блюдо

WHERE КодБл not in (

SELECT КодБл

FROM Рецепт )

or КодБл in

(SELECT КодБл,

COUNT (КодПрод) as КолПродВБл

FROM Рецепт

GROUP BY КодБл

HAVING count (КодПрод)=1

and КодПрод in

(SELECT Код Прод

FROM Продукт

WHERE Калорийность < 50) )

Билет 4.

5. Справочник поставщиков: Поставщик (КодПост, НазвПост, Статус, Город)

Справочник товаров: Товар (КодТовара, НазвТовара, Вес, Цвет, Город)

Поставка данным поставщиком данного товара: Поставка (КодПост, КодТовара, Количество).

Извлечь сведения о поставщиках со средним количеством товаров в поставке выше 200: код, название, кол-во поставок и суммарное количество поставляемых товаров. Упорядочить по названиям.

РЕШЕНИЕ:

SELECT Поставщик.НазвПост,

Поставщик. КодПост,

COUNT (Поставка.КодПост) as КолПост,

SUM (Количество) as Сумма

FROM Поставка inner join Поставщик

on (Поставка.КодПост=Поставщик.КодПост)

GROUP BY КодПост, НазвПост

HAVING AVG (Количество)>200)????(похоже какая-то скобка лишняя)

ORDER BY Поставщик.НазвПост;

Билет 5.

Соседние файлы в папке Материалы к экзамену