Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы к экзамену / Билеты (задача 5) - решения.doc
Скачиваний:
44
Добавлен:
02.05.2014
Размер:
74.24 Кб
Скачать

20. Пациент (КодПац, фиоПац, Категория, ДатаРожд) – справочник пациентов,

Врач (КодВрача, ФИОВрача, Спец, Стаж) – врачей,

Прием (КодПац, КодВрача, ДатаВремя, Кабинет) – прием пациента врачом.

Извлечь пациентов, посетивших врача в текущем году, и врачей, принявших пациентов тоже в текущем году. Рез-тат д. содержать: «код» (пациента/врача); «ФИО»; «тип» (“пациент”/”врач”); «приемов» (число приемов у пациента/врача). Упор-ть по типам, затем – по ФИО.

Select КодПац as Код,

ФИОПац as ФИО,

“пациент as Тип,

count(КодВрача) as приемов

From Пациент inner join Прием

On (Пациент.КодПац=Прием.КодПац)

Where КодПац in (

Select КодПац

From Прием

Where ДатаВремя=2005)

Group by КодПац, ФИОПац

Union

Select КодВрача as Код,

ФИОВрача as ФИО,

“врач as Тип,

count(КодПац) as приемов

From Врач inner join Прием

On (Врач.КодВрача=Прием.КодВрача)

Where КодВрача in (

Select КодВрача

From Прием

Where ДатаВремя=2005)

Group by КодВрача, ФИОВрача

Order by Тип, ФИО;

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

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

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

Извлечь коды и названия всех блюд, для которых либо вовсе не указаны входящие в него продукты, либо указан всего один продукт, причем такой, что калорийность его ниже 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));

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

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

Рецепт (КодБл, КодПрод, КолПродВБл).

Извлечь статистику уровней калорийности продукта: уровень калорийности, количество продуктов, имеющих эту калорийность, количество блюд, содержащих продукт этой калорийности. Не учитывать продукты, названия которых начинаются на «А» и блюда категории «Б». Упорядочить по убыванию.

Select Калорийность,

Count(distinct Прод.КодПрод) as КолПрод

Count(distinct Бл.КодБл) as КолБл

From Блюдо, Продукт, Рецепт

Where

(Прод.КодПрод=Рецепт.КодПрод)

And (Бл.КодБл=Рецепт.КодБл)

And Прод.КодПрод not in (

Select Прод.КодПрод

From Продукт

Where НазвПрод Like ‘А%’)

And Бл.КодБл not in (

Select КодБл

From Блюдо

Where категория=’Б’)

Group by Калорийность

Order by Калорийность desc;

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