Запрос16. Какова min и max почасовые ставки?
ПРОСТЫЕ ЗАПРОСЫ
Запрос1. Кто работает штукатуром?
SELECT DISTINCT Name
FROM "worker.DB"
WHERE
(Skill_type = 'Штукатур')
ORDER BY Name
Запрос2. Привести все данные о зданиях офисов.
ELECT DISTINCT Bldg_id, Adress, Type, Qlty_level, Status
FROM "building.db"
WHERE
(Type = 'Офис')
ORDER BY Bldg_id, Adress, Type, Qlty_level, Status
Запрос3. Какова недельная зарплата каждого электрика?
select Name,'Íåäåëüíàÿ çàðïëàòà=', 40 * Hrly_rate
from "worker.db"
where (Skill_type='Электрик')
order by Name
Запрос4. У кого почасовая ставка от 10 до 12 у.е.?
select *
from "worker.db"
where Hrly_rate between 10 and 12
Запрос5. Перечислить штукатуров, кровельщиков,электриков.
select *
from "worker.db"
where Skill_type in ('Штукатур,'Кровельщик','Электрик')
Запрос6. Перечислить работников, чья специальность начинается с “элек”.
select *
from "worker.db"
where skill_type like ('Элек%')
Запрос7. Найти все работы, которые начинаются в течение ближайших двух недель.
SELECT DISTINCT Worker_id, Bldg_id, Start_date, Num_days
FROM "assignment.db"
WHERE
(Start_date >= '10/10/2005')
AND (Start_date <= '10/10/2005'+(14.0))
ORDER BY Worker_id, Bldg_id, Start_date, Num_days
МНОГОТАБЛИЧНЫЕ ЗАПРОСЫ
Запрос8. Каковы специальности рабочих, назначенных на здание 435?
SELECT DISTINCT D1.Skill_type
FROM "assignment.db" d, "worker.DB" D1
WHERE
(d.Bldg_id = 435.0)
AND (D1.Worker_id = d.Worker_id)
ORDER BY D1.Skill_type
Запрос9. Перечислить работников, указав имена их менеджеров.
SELECT DISTINCT D.Name, D1.Name
FROM "worker.DB" D, "worker.DB" D1
WHERE
(D1.Supv_id = D.Worker_id)
ORDER BY D.Name, D1.Name
Запрос10. Перечислить работников, назначенных на здания офисов.
SELECT DISTINCT D2.Name
FROM "assignment.db" d, "building.db" d1, "worker.DB" D2
WHERE
(d1.Bldg_id = d.Bldg_id)
AND (d1.Type = 'Îôèñ')
AND (D2.Worker_id = d.Worker_id)
ORDER BY D2.Name
ПОДЗАПРОСЫ
(запрос внутри запроса)
Запрос11. Каковы специальности рабочих, назначенных на здание 435?
select skill_type
from "worker.db"
where Worker_id in
(select worker_id
from "assignment.db"
where bldg_id=435)
Запрос12(некоррелированный подзапрос – подзапрос, значение которого не зависит ни от какого внешнего запроса). Перечислить работников, назначенных на здания офисов.
select Name
from "worker.db"
where worker_id in
(select worker_id
from "assignment.db"
where bldg_id in
(select bldg_id
from "building.db"
where type= 'Îôèñ'))
Запрос13(коррелированный подзапрос – подзапрос, результат которого зависит от строки, рассматриваемой главным запросом). Перечислить работников, чьи почасовые ставки выше, чем ставки их менеджеров.
SELECT Name
from "worker.db" d1
where d1.hrly_rate >
(select d2.hrly_rate
from "worker.db" d2
where d2.worker_id=d1.supv_id)
EXISTS и NOT EXISTS
(существует и не существует)
Запрос14(коррелированный подзапрос). Перечислить работников, которые не назначены работать на здание 435.
select worker_id
from "worker.db" d1
where not exists
(select *
from "assignment.db" d2
where d2.worker_id=d1.worker_id and bldg_id=435)
Запрос14_1(некоррелированный подзапрос).
select worker_id
from "worker.db"
where worker_id not in
(select worker_id
from "assignment.db"
where bldg_id=435)
Запрос15. Перечислить работников, назначенных на каждое здание (может быть реализован при помощи двойного отрицания). Перечислить работников, для которых не существует здания, на которое они не назначены.
select worker_id
from "worker.db"
where not exists
(select bldg_id
from "building.db" d1
where not exists
(select *
from "assignment.db" d2
where d2.bldg_id=d1.bldg_id and d2.worker_id=worker_id))
ВСТРОЕННЫЕ ФУНКЦИИ
Запрос16. Какова min и max почасовые ставки?
select max(hrly_rate), min(hrly_rate)
from "worker.db"