4.3. Вариант 3
1) + По каждому преподавателю выведите его имя и сумму hiredate + salary (столбец с именем
«Дата»). Что получается в результате вычисления hiredate + salary?
SELECT Name as TEACHER_NAME, Hiredate + SalaryFROM TEACHER;
2) +
По каждой дисциплине вывести ее название и названия факультетов, на которых читаются эти дисциплины на третьем курсе
SELECT s.Name, f.Name FROM FACULTY f, DEPARTMENT d, SGROUP g, LECTURE l, SUBJECT s WHERE f.FacPK = d.FacFK AND d.DepPK=g.DepFK AND g.GrpPK = l.GrpFK AND l.SbjFK=s.SbjPK AND g. Course = 3
3) + Вывести названия кафедр, преподаватели которых преподают студентам кафедры ИПО
SELECT f.Name FROM DEPARTMENT source, TEACHER t, LECTURE l, SGROUP g, DEPARTMENT result, FACULTY f WHERE source.DepPK=g.DepFK AND g.GrpPK=l.GrpFK AND l.TchFK=t.TchPK AND t.DepFK= result.DepPK AND result.FacFK=f.FacPK AND source.Name= 'ИПО'
4) + (ошибка на рисунке пути этого запроса) Вывести названия кафедр, на которых непосредственные подчиненные заведующих кафедр
имеют зарплату (salary+commission) в диапазоне 2000-3000
SELECT d.Name FROM DEPARTMENT d, TEACHER boss, TEACHER subord WHERE d.HeadFK=boss.TchPK AND boss.TchPK= subord.ChiefFK AND subord.Salary+ subord.Commission BETWEEN 2000 AND 3000
5) +Вывести названия дисциплин, которые читаются преподавателями-профессорами кафедр,
расположенных в корпусах 1, 4, 6, 7 , 9, 10
SELECT s.Name FROM DEPARTMENT d, TEACHER t, LECTURE l, SUBJECT s WHERE d.DepPK=t.DepFK AND t.TchPK=l.TchFK AND l.SbjFK=s.SbjPK AND LOWER(t.Post)= 'профессор' AND d.Building IN ('1', '4', '6', '7', '9', '10')
6) Вывести имена преподавателей и номера групп и курсов, в которых они являются кураторами. Причем, если какой-то преподаватель не является куратором никакой группы, то его имя все равно выводится, а вместо номера группы и курса выводятся цифры 0.
SELECT t.Name AS "Преподаватель", NVL(g.Num, 0) AS "Группа", NVL(g.Course, 0) AS "Курс" FROM TEACHER t, SGROUP g WHERE t.TchPK = g.Curator (+)
7) + Вывести номера групп и их курс факультета с фондом финансирования больше 20000 ирейтингом больше 10 ИЛИ группы факультета из корпуса 6 и с рейтингом меньше 70 ИЛИ группы факультета из корпуса 5 и с рейтингом больше 40
SELECT g.Num, g.Course
FROM FACULTY f, DEPARTMENT d, SGROUP g
WHERE f.FacPK=d.FacFK AND d.DepPK=g.DepFK
AND (f.Fund > 20000 AND g.Rating > 10
OR f.Building = '6'AND g.Rating < 70
OR f.Building = '5'AND g.Rating > 40)