Написать SQL(ORACLE) запрос /\ Необходимо вывести студентов сдавших экзамены по двум иностранным языкам на «отлично»
Помогите пожалуйста организовать правильно запрос. Он разрабатывается на чистом SQL(Oracle)
Необходимо вывести студентов сдавших экзамены по двум иностранным языкам на «отлично». Предлагаем следующий алгоритм:
a. Шаг 1. Определим номер кафедры иностранного языка (ch_chair_id) из таблицы chairs.
b. Шаг 2. Необходимо получить идентификаторы всех преподавателей кафедры (t_id) из таблицы teachers.
c. Шаг 3. Используя многострочный подзапрос, определим список идентификаторов предметов (sb_id) из таблицы subjects, которые читаются этими преподавателями.
d. Шаг 4. Из таблицы marks определим студентов (m_student_id) сдавших предметы на пять.
e. Шаг 5. И наконец, из таблицы students найдём группу (st_group), фамилию (st_surname) и имя (st_name) этих студентов.
Я создал несколько таблиц, но не могу разобраться, как правильно скомпоновать запрос. У меня даже идей нет, с чего начать.
CREATE TABLE subjects
(
sb_id NUMBER(3),
sb_subject VARCHAR2(40),
sb_teacher_id NUMBER(4),
sb_load NUMBER(3) DEFAULT 0
);
CREATE TABLE students
(
st_record_book NUMBER(6),
st_name VARCHAR2(20),
st_patronymic VARCHAR2(20),
st_surname VARCHAR2(20),
st_birthday DATE,
st_sex CHAR(1),
st_living_place VARCHAR2(20),
st_group VARCHAR2(7)
);
CREATE TABLE teachers
(t_id NUMBER(4),
t_name VARCHAR2(20),
t_patronymic VARCHAR2(20),
t_surname VARCHAR2(20),
t_birthday DATE,
t_sex CHAR(1),
t_living_place VARCHAR2(20),
t_chair_id NUMBER(2),
t_manager_id NUMBER(4),
t_position VARCHAR2(20) NOT NULL,
t_salary NUMBER(4)
);
CREATE TABLE chairs
(
ch_chair_id NUMBER(2),
ch_name VARCHAR2(20) NOT NULL,
ch_manager_id NUMBER(4),
ch_phone VARCHAR2(8)
);
CREATE TABLE marks(
m_student_id NUMBER(6),
m_subject_id NUMBER(3),
m_mark NUMBER(1)
);
P.S. Шось я с температурой совсем отупел, благодарю за уделенное время!)