
- •20. Пациент (КодПац, фиоПац, Категория, ДатаРожд) – справочник пациентов,
- •3. Блюдо (КодБл, НазвБл, Категория) – справочник блюд;
- •5. Блюдо (КодБл, НазвБл, Категория);
- •23. Пациент (КодПац, фиоПац, Категория, ДатаРожд)
- •16. Извлечь номера и фио студентов, сдавших в точности те предметы, которые сдал Иванов. Упорядочить в обратном алфавитном порядке.
- •27. Пациент (КодПац, ФиоПац, Категория, ДатаРожд);
- •33. Изделие (КодИзд, НазвИзд, Вид, Стоимость)
- •35. Изделие (КодИзд, НазвИзд, Вид, Стоимость)
27. Пациент (КодПац, ФиоПац, Категория, ДатаРожд);
Врач (КодВрача, ФИОВрача, Спец, Стаж);
Прием (КодПац, КодВрача, ДатаВремя, Район).
Извлечь коды и ФИО пациентов, не посетивших в текущем году ни одного врача из тех, которых посетил пациент Иванов С.П. Отсортировать результат в обратном направлении по коду
Select КодПац, ФИОПац
From Пациент
Where not exists (
Select *
From Прием, Врач
Where Прием.КодВр=Врач.КодВр
And (Прием.ДатаВремя=2005)
And КодПац in (
Select КодПац
From Пациент
Where ФИО=’Иванов С.П.’ ))
Order by КодПац desc;
33. Изделие (КодИзд, НазвИзд, Вид, Стоимость)
Деталь (КодДет, НазвДет, Вес, Цена)
Состав (КодИзд, КодДет, Количество)
Извлечь сведения об изделиях, у которых суммарная цена используемых деталей по крайней мере в 2 раза меньше стоимости изделия: код, название, стоимость, суммарное число деталей, суммарная цена деталей.
Select КодИзд, НазвИзд, Стоим,
Sum(Состав.Кол.) As СумКол,
Sum(Деталь.Цена.) As СумЦен
From Изделие, Деталь, Состав
Where Изд.КодИзд=Сост.КодИзд
And Дет.КодДет=Сост.КодДет
Group by КодИзд, НазвИзд, Стоим
Having Sum (Дет.Цена)*2<=(
Select стоим
From изделие);
35. Изделие (КодИзд, НазвИзд, Вид, Стоимость)
Деталь (КодДет, Вес, НазвДет, Цена)
Состав (КодИзд, КодДет, Количество)
Извлечь коды и названия деталей, которые исп-ся в кол-ве более 20 штук, по крайней мере во всех тех изделиях, в кот. исп-ся деталь «Шайба».
Select КодДет, НазвДет
From Деталь
Where КодДет in
(select КодДет
From Состав
Where Количество>20
And
Not exists (
select *
From Состав
Where КодДет in (
Select КодДет
From Деталь
Where НазвДет=”шайба”)
And КодИзд not in (
Select КодИзд
From Состав
Where Дет.КодДет=Состав.КодДет)));
Пример 1 билета. справочник поставщиков
Поставщик (КодПост, НазвПост, Статус, Город);
справочник товаров
Товар (КодТовара, НазвТовара, Вес, Цвет,Город);
поставка данным поставщиком данного товара
Поставка (КодПост, КодТовара, Количество).
Извлечь все пары поставщиков из одного города, такие, что статус второго поставщика не меньше статуса первого. Для каждого напарника указать код, название, статус. Для поставщиков, не имеющих пары, значения напарника – 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.НазвПост;
Пример 4 билета. справочник поставщиков
Поставщик (КодПост, НазвПост, Статус, Город);
справочник товаров
Товар (КодТовара, НазвТовара, Вес, Цвет,Город);
поставка данным поставщиком данного товара
Поставка (КодПост, КодТовара, Количество).
Извлечь сведения о поставщиках со средним кол-вом товаров в поставке выше 200: код, название, кол-во поставок и суммарное кол-во поставляемых товаров. Уп-ть по названиям.
Select Поставщик.НазвПост,
Поставщик.КодПост,
Count(Поставка.КодПост) as КолПост,
Sum(Количество) as Сумма
from Поставка inner join Поставщик
on (Поставка.КодПост=Поставщик.КодПост)
Group By КодПост, НазвПост
Having Avg(Количество)>200)
order by Поставщик.НазвПост;