diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index fec1b9507ad586d2ff8b9096a7f0f19d45cdc933..9cf4330a60038db5ac041202f023721b1b667573 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -922,11 +922,15 @@ END // -- Decs: Полная информация по модулям/подмодулям для данного студента по данному курсу (заголовки модулей, максимальное количество баллов за подмодуль) DROP PROCEDURE IF EXISTS GetMapForStudent// CREATE PROCEDURE `GetMapForStudent` ( IN `StudentID` INT, - IN `SubjectID` INT + IN `DisciplineID` INT ) BEGIN DECLARE groupID, semID INT; - SELECT students.StudyGroupID INTO groupID FROM `students` WHERE students.ID = StudentID LIMIT 1; + SELECT students.StudyGroupID + INTO groupID + FROM `students` + WHERE students.ID = StudentID + LIMIT 1; SET semID = GetCurSemesterID(); SELECT modules.ID AS 'ModuleID', @@ -940,22 +944,9 @@ BEGIN rating_table.Date FROM `submodules` INNER JOIN `modules` ON submodules.ModuleID = modules.ID - LEFT JOIN `rating_table` ON submodules.ID = rating_table.SubModuleID AND rating_table.StudentID = StudentID - WHERE modules.DisciplineID IN - ( SELECT DISTINCT disciplines.ID - FROM `disciplines_teachers` - INNER JOIN `disciplines` ON disciplines_teachers.DisciplineID = disciplines.ID - LEFT JOIN `disciplines_groups` ON disciplines_groups.DisciplineID = disciplines.ID AND - disciplines_groups.StudyGroupID = groupID - LEFT JOIN `disciplines_students` ON disciplines_students.DisciplineID = disciplines.ID AND - disciplines_students.StudentID = StudentID - WHERE disciplines.SemesterID = semID AND - ( disciplines_students.Type = 'attach' OR - ( ( disciplines_students.Type IS NULL OR disciplines_students.Type != 'detach' ) AND - disciplines_groups.StudyGroupID = groupID - ) - ) - ) + LEFT JOIN `rating_table` ON submodules.ID = rating_table.SubModuleID AND + rating_table.StudentID = StudentID + WHERE modules.DisciplineID = DisciplineID ORDER BY modules.OrderNum ASC, submodules.OrderNum ASC; END //