Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE
- SUBJ_NAME VARCHAR2(100);
- GRUP_NAME VARCHAR2(100);
- OCENKA VARCHAR2(100);
- GR_NEW VARCHAR2(100);
- GR_OLD VARCHAR2(100);
- CURSOR c_subj IS SELECT SUBJ_NAME FROM KMV_T3_SUBJECTS ORDER BY SUBJ_NAME;
- CURSOR c_tot IS
- SELECT
- c.SUBJ_NAME, b.GRUP_NAME,
- d.STUD_FAM ||' '|| SUBSTR(d.STUD_IMYA,1,1) ||'.'|| SUBSTR(d.STUD_OTCH,1,1) ||'.' AS STUD_NAME,
- e.OCENKA
- FROM
- KMV_T3_STUDY a
- left join KMV_T3_GRUP b ON b.GRUP_ID = a.GRUP_ID
- left join KMV_T3_SUBJECTS c ON c.SUBJ_ID = a.SUBJ_ID
- left join KMV_T3_STUDENTS d ON d.GRUP_ID = b.GRUP_ID
- left join KMV_T3_PROGRESS e ON e.STUD_ID = d.STUD_ID AND e.GRUP_ID = d.GRUP_ID AND e.SUBJ_ID = c.SUBJ_ID
- ORDER BY
- c.SUBJ_NAME, b.GRUP_NAME;
- BEGIN
- GR_OLD := '-';
- FOR x IN c_subj
- LOOP
- SUBJ_NAME := x.SUBJ_NAME;
- DBMS_OUTPUT.put_line('Предмет - ' || SUBJ_NAME);
- FOR y IN c_tot
- LOOP
- IF SUBJ_NAME = y.SUBJ_NAME THEN
- GR_NEW := y.GRUP_NAME;
- --выводим значение группы
- IF GR_NEW <> GR_OLD THEN
- DBMS_OUTPUT.put_line('Группа - ' || GR_NEW);
- END IF;
- --формируем значение оценки
- IF y.OCENKA IS NULL THEN
- OCENKA := 'Нет оценки';
- ELSE
- OCENKA := 'Оценка: ' || y.OCENKA;
- END IF;
- --выводим результат по совпадениям
- DBMS_OUTPUT.put_line(CHR(9) || y.STUD_NAME ||' | '|| OCENKA);
- GR_OLD := GR_NEW;
- END IF;
- END LOOP;
- DBMS_OUTPUT.put_line('');
- END LOOP;
- END;
Advertisement
Add Comment
Please, Sign In to add comment