From a44d29f71653a4d6d4f4856a2f586844e8f8dc42 Mon Sep 17 00:00:00 2001 From: PavelBegunkov <asml.Silence@gmail.com> Date: Tue, 10 Feb 2015 01:31:01 +0300 Subject: [PATCH] nothing valuable --- db/StoredProcedures.sql | 51 ++++++++++++++++------- db/Views.sql | 92 +++++++++++++++++++++-------------------- 2 files changed, 85 insertions(+), 58 deletions(-) diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index ff2cbcabf..47bf102af 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -454,15 +454,16 @@ END // DROP PROCEDURE IF EXISTS GetSemesterInfo// -CREATE PROCEDURE `GetSemesterInfo` (IN `pSemesterID` INT) - NO SQL -BEGIN - SELECT semesters.Num As 'Num', - semesters.Year As 'Year' - FROM `semesters` - WHERE semesters.ID = pSemesterID - LIMIT 1; -END // +# TODO: del +# CREATE PROCEDURE `GetSemesterInfo` (IN `pSemesterID` INT) +# NO SQL +# BEGIN +# SELECT semesters.Num As 'Num', +# semesters.Year As 'Year' +# FROM `semesters` +# WHERE semesters.ID = pSemesterID +# LIMIT 1; +# END // # ------------------------------------------------------------------------------------------- @@ -627,7 +628,6 @@ CREATE PROCEDURE `GetStudyGroups` BEGIN SELECT view_study_groups.GroupID AS 'ID', view_study_groups.GroupNum AS 'GroupNum', - view_study_groups.SpecID, view_study_groups.SpecName, view_study_groups.SpecAbbr FROM `view_study_groups` @@ -1606,7 +1606,7 @@ END // # search students, that in main group or attached DROP PROCEDURE IF EXISTS GetStudentsForDiscipline// CREATE PROCEDURE `GetStudentsForDiscipline` - ( IN `TeacherID` INT, IN `pDisciplineID` INT) + ( IN `pTeacherID` INT, IN `pDisciplineID` INT) NO SQL BEGIN SELECT view_disciplines_students.StudentID AS 'ID', @@ -1801,8 +1801,8 @@ DROP PROCEDURE IF EXISTS GetMapForStudentExam// CREATE PROCEDURE `GetMapForStudentExam` ( IN `pStudentID` INT, IN `pDisciplineID` INT) NO SQL -BEGIN - SELECT view_rating.ModuleID, +BEGIN + SELECT view_rating.ModuleID, view_rating.ModuleName, view_rating.SubmoduleID, view_rating.SubModuleName, @@ -1814,11 +1814,34 @@ BEGIN FROM `view_rating` WHERE view_rating.StudentID = pStudentID AND view_rating.DisciplineID = pDisciplineID - ORDER BY view_rating.ModuleOrderNum ASC, + ORDER BY view_rating.ModuleOrderNum ASC, view_rating.SubmoduleOrderNum ASC; END // +DROP PROCEDURE IF EXISTS GetMapForStudentExam// +CREATE PROCEDURE `GetMapForStudentExam` + ( IN `pStudentID` INT, IN `pDisciplineID` INT) +NO SQL + BEGIN + SELECT view_roadmap.ModuleID, + view_roadmap.ModuleName, + view_roadmap.SubmoduleID, + view_roadmap.SubModuleName, + view_roadmap.SubmoduleRate AS 'MaxRate', + view_roadmap.SubmoduleType AS 'SubmoduleControl', + rating_table.Rate, + rating_table.Date, + view_roadmap.ModuleType + FROM `view_roadmap` + LEFT JOIN `rating_table` ON rating_table.SubmoduleID = view_roadmap.SubmoduleID AND + rating_table.StudentID = pStudentID + WHERE view_roadmap.DisciplineID = pDisciplineID + ORDER BY view_roadmap.ModuleOrderNum ASC, + view_roadmap.SubmoduleOrderNum ASC; + END // + + DROP PROCEDURE IF EXISTS GetMapForDiscipline// CREATE PROCEDURE `GetMapForDiscipline` ( IN `TeacherID` INT, diff --git a/db/Views.sql b/db/Views.sql index 92d84cf65..a836001dd 100644 --- a/db/Views.sql +++ b/db/Views.sql @@ -14,10 +14,10 @@ CREATE OR REPLACE VIEW `view_study_groups` AS faculties.ID AS 'FacultyID', faculties.Name AS 'FacultyName', faculties.Abbr AS 'FacultyAbbr' - FROM `study_groups` - INNER JOIN `specializations` ON study_groups.SpecializationID = specializations.ID - INNER JOIN `grades` ON study_groups.GradeID = grades.ID - INNER JOIN `faculties` ON faculties.ID = specializations.FacultyID; + FROM `study_groups` + INNER JOIN `specializations` ON study_groups.SpecializationID = specializations.ID + INNER JOIN `grades` ON study_groups.GradeID = grades.ID + INNER JOIN `faculties` ON faculties.ID = specializations.FacultyID; CREATE OR REPLACE VIEW `view_teachers` AS @@ -33,10 +33,10 @@ CREATE OR REPLACE VIEW `view_teachers` AS faculties.ID AS 'FacultyID', faculties.Name AS 'FacultyName', faculties.Abbr AS 'FacultyAbbr' - FROM `teachers` - INNER JOIN `departments` ON departments.ID = teachers.DepartmentID - INNER JOIN `faculties` ON departments.FacultyID = faculties.ID - INNER JOIN `job_positions` ON job_positions.ID = teachers.JobPositionID; + FROM `teachers` + INNER JOIN `departments` ON departments.ID = teachers.DepartmentID + INNER JOIN `faculties` ON departments.FacultyID = faculties.ID + INNER JOIN `job_positions` ON job_positions.ID = teachers.JobPositionID; CREATE OR REPLACE VIEW `view_students` AS @@ -46,8 +46,8 @@ CREATE OR REPLACE VIEW `view_students` AS students.SecondName, students.AccountID, view_study_groups.* - FROM `students` - INNER JOIN `view_study_groups` ON view_study_groups.GroupID = students.StudyGroupID; + FROM `students` + INNER JOIN `view_study_groups` ON view_study_groups.GroupID = students.StudyGroupID; CREATE OR REPLACE VIEW `view_disciplines` AS @@ -69,46 +69,50 @@ CREATE OR REPLACE VIEW `view_disciplines` AS faculties.ID AS 'FacultyID', faculties.Name AS 'FacultyName', faculties.Abbr AS 'FacultyAbbr' - FROM `disciplines` - INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID - INNER JOIN `faculties` ON faculties.ID = disciplines.FacultyID - INNER JOIN `grades` ON grades.ID = disciplines.GradeID; + FROM `disciplines` + INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID + INNER JOIN `faculties` ON faculties.ID = disciplines.FacultyID + INNER JOIN `grades` ON grades.ID = disciplines.GradeID; CREATE OR REPLACE VIEW `view_disciplines_results` AS SELECT modules.DisciplineID, SUM(submodules.MaxRate) AS 'DisciplineRateMax', SUM(submodules.MaxRate*submodules.isUsed) AS 'DisciplineRateCur' - FROM `submodules` - INNER JOIN `modules` ON modules.ID = submodules.ModuleID - WHERE (modules.Type = 'regular') OR (modules.Type = 'exam' AND submodules.OrderNum = 1) - GROUP BY modules.DisciplineID; + FROM `submodules` + INNER JOIN `modules` ON modules.ID = submodules.ModuleID + WHERE (modules.Type = 'regular') OR (modules.Type = 'exam' AND submodules.OrderNum = 1) + GROUP BY modules.DisciplineID; CREATE OR REPLACE VIEW `view_disciplines_teachers` AS SELECT view_disciplines.DisciplineID, view_teachers.*, (view_disciplines.AuthorID = view_teachers.TeacherID) AS 'IsAuthor' - FROM `view_disciplines` - LEFT JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = view_disciplines.DisciplineID - INNER JOIN `view_teachers` ON view_teachers.TeacherID = disciplines_teachers.TeacherID; + FROM `view_disciplines` + LEFT JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = view_disciplines.DisciplineID + INNER JOIN `view_teachers` ON view_teachers.TeacherID = disciplines_teachers.TeacherID; CREATE OR REPLACE VIEW `view_disciplines_students` AS - SELECT disciplines_students.DisciplineID, + (SELECT disciplines_students.DisciplineID, disciplines_students.Type AS 'AttachType', view_students.* - FROM `disciplines_students` - INNER JOIN `view_students` ON view_students.StudentID = disciplines_students.StudentID - UNION DISTINCT - SELECT disciplines_groups.DisciplineID, + FROM `disciplines_students` + INNER JOIN `view_students` ON view_students.StudentID = disciplines_students.StudentID + ) UNION + (SELECT disciplines_groups.DisciplineID, NULL AS 'AttachType', view_students.* - FROM `disciplines_groups` - LEFT JOIN `view_students` ON view_students.GroupID = disciplines_groups.StudyGroupID - LEFT JOIN `disciplines_students` ON disciplines_students.StudentID = view_students.StudentID AND - disciplines_students.DisciplineID = disciplines_groups.DisciplineID - WHERE disciplines_students.Type IS NULL; + FROM `disciplines_groups` + LEFT JOIN `view_students` ON view_students.GroupID = disciplines_groups.StudyGroupID + WHERE NOT EXISTS + (SELECT disciplines_students.StudentID + FROM `disciplines_students` + WHERE disciplines_students.DisciplineID = disciplines_groups.DisciplineID AND + disciplines_students.StudentID = view_students.StudentID + ) + ); CREATE OR REPLACE VIEW `view_roadmap` AS @@ -125,8 +129,8 @@ CREATE OR REPLACE VIEW `view_roadmap` AS submodules.Type AS 'SubmoduleType', # enum('CurrentControl','LandmarkControl') submodules.isUsed AS 'SubmoduleIsUsed' - FROM `submodules` - INNER JOIN `modules` ON submodules.ModuleID = modules.ID; + FROM `modules` + INNER JOIN `submodules` ON submodules.ModuleID = modules.ID; CREATE OR REPLACE VIEW `view_rating` AS @@ -135,26 +139,26 @@ CREATE OR REPLACE VIEW `view_rating` AS rating_table.Rate, rating_table.Date, rating_table.TeacherID - FROM `view_roadmap` - LEFT JOIN `rating_table` ON rating_table.SubmoduleID = view_roadmap.SubmoduleID - INNER JOIN `view_students` ON rating_table.StudentID = view_students.StudentID; + FROM `view_roadmap` + LEFT JOIN `rating_table` ON rating_table.SubmoduleID = view_roadmap.SubmoduleID + INNER JOIN `view_students` ON rating_table.StudentID = view_students.StudentID; CREATE OR REPLACE VIEW `view_rating_result` AS SELECT view_rating.StudentID, view_rating.DisciplineID, - SUM(view_rating.Rate*(view_rating.ModuleType = "regular")) AS 'RateRegular', - SUM(view_rating.Rate*(view_rating.ModuleType = "extra")) AS 'RateExtra', - SUM(view_rating.Rate*(view_rating.ModuleType = "bonus")) AS 'RateBonus', - (SELECT view_rating.Rate*(view_rating.ModuleType = "exam") - ORDER BY view_rating.ModuleType = "exam" DESC, + SUM(view_rating.Rate*(view_rating.ModuleType = 'regular')) AS 'RateRegular', + SUM(view_rating.Rate*(view_rating.ModuleType = 'extra')) AS 'RateExtra', + SUM(view_rating.Rate*(view_rating.ModuleType = 'bonus')) AS 'RateBonus', + (SELECT view_rating.Rate*(view_rating.ModuleType = 'exam') + ORDER BY view_rating.ModuleType = 'exam' DESC, (view_rating.Rate IS NULL) ASC, view_rating.SubmoduleOrderNum DESC LIMIT 1 ) AS 'RateExam' - FROM `view_rating` - WHERE view_rating.Rate IS NOT NULL - GROUP BY view_rating.StudentID, view_rating.DisciplineID; + FROM `view_rating` + WHERE view_rating.Rate IS NOT NULL + GROUP BY view_rating.StudentID, view_rating.DisciplineID; -- GitLab