Запрос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"

Наши рекомендации