== UC006 - Приказ на положени предмети '''Иницијален актер:''' Студент '''Други актери:''' - Студентот сака да го види своето уверение за положени испити: сите предмети кои ги положил, со оценка, датум, професор, семестар и кредити, како и вкупниот број кредити и просечната оценка. === Сценарио 1. Студентот избира '''Испити''' од менито. 2. Системот ги презема сите положени предмети на студентот. Патеката до студентот оди преку запишаниот семестар, бидејќи во моделот semesters_subjects не содржи директна врска кон студентот. {{{#!sql SELECT s.code, s.name AS subject, s.awarded_credits, ps.grade, ps.date_passed, p.name || ' ' || p.surname AS professor, a.year, a.type FROM project.passed_subjects ps JOIN project.semesters_subjects ss ON ss.id = ps.enrolled_id JOIN project.enrolled_semesters es ON es.id = ss.enrolled_semesters_id JOIN project.subjects s ON s.id = ss.subjects_id JOIN project.users p ON p.id = ss.professor_id JOIN project.active_semesters a ON a.id = es.semester_id WHERE es.user_id = 1 ORDER BY ps.date_passed; }}} 3. Системот го пресметува просекот и вкупните кредити. Бидејќи grade е набројувачки тип (enum), вредноста прво се претвора во текст, па во цел број за да може да се пресмета просек. {{{#!sql SELECT round(avg(ps.grade::text::int), 2) AS average_grade, sum(s.awarded_credits) AS total_credits FROM project.passed_subjects ps JOIN project.semesters_subjects ss ON ss.id = ps.enrolled_id JOIN project.enrolled_semesters es ON es.id = ss.enrolled_semesters_id JOIN project.subjects s ON s.id = ss.subjects_id WHERE es.user_id = 1; }}} 4. Системот ја прикажува табелата со положените предмети и, под неа, просекот и вкупните кредити. 5. Студентот по желба избира '''Преземи PDF''', со што се преминува на [wiki:UseCase008 UC008]. === Забелешки * Врската меѓу semesters_subjects и passed_subjects е 1:1, обезбедена со UNIQUE врз passed_subjects.enrolled_id, па еден предмет во еден семестар може да има најмногу една оценка. * Ако студентот го слушал истиот предмет во повеќе семестри, секое слушање е посебен ред во semesters_subjects, па се гледа и во кој семестар е положен.