5) Задания. Результаты. Задания sql.
Задание:
1. Выдать общее количество деталей
поставляемых для изделия Перфоратор
поставщиком чей рейтинг меньше 20.
Решение:
select
distinct count(md.detailid)
from
maker, md
where
maker.makerstatus<20 and
md.makerid=maker.makerid
and
md.thingid=2;
Результат:
3
Задание:
2. Выдать, алфавитном порядке, фамилии
поставщиков, поставляющих по красней
мере одну деталь, поставляемую по крайней
мере одним поставщиком, который
поставляет, по крайней мере, одну деталь
зеленого цвета.
Решение(Вариант без поздапроса):
select
distinct maker.makerf
from
maker
where
detail.detailcolor='Green' and
md.detailid=detail.detailid
and
maker.makerid=md.makerid;
Решение(Вариант с подзапросом):
select
makerf
from
maker
where
makerid in
(select
makerid
from
md
where
detailid in
(select
detailid
from
detail
where
detailcolor='Green'))
order
by makerf;
Результат:
MAKERF |
'Abasov' |
'Abdulin' |
'Degtev' |
'Rasskazov' |
'Temnov' |
'Zagainov' |
Задания pl sql.
Задание:
1.Всем поставшикам, у которых рейтинг
меньше 10 увеличить рейтинг на 1.
Решение:
declare
ten int;
begin
ten:=10;
update
maker
set
makerstatus=makerstatus+1
where
makerstatus<ten;
end;
Результат:
Рейтинг
Загайнова увеличится на единицу.