Skip to content
Snippets Groups Projects
Commit de469bc1 authored by PavelBegunkov's avatar PavelBegunkov
Browse files

REF: comments

parent b1977882
Branches
Tags
No related merge requests found
......@@ -26,13 +26,10 @@ CREATE FUNCTION `InternalIsMapLocked`
(`pDisciplineID` INT) RETURNS BOOLEAN
NO SQL
BEGIN
DECLARE vChecker boolean DEFAULT -1;
SELECT disciplines.isLocked INTO vChecker
FROM `disciplines`
WHERE pDisciplineID = disciplines.ID
LIMIT 1;
RETURN ( vChecker > 0 );
RETURN EXISTS(
SELECT * FROM `disciplines`
WHERE disciplines.ID = pDisciplineID AND disciplines.isLocked = 1
);
END //
......@@ -446,7 +443,7 @@ BEGIN
LIMIT 1;
IF (ROW_COUNT() = 0) THEN
RETURN -2;
RETURN -2; # account with this Code not found
END IF;
RETURN @vAccountID;
END //
......@@ -680,7 +677,7 @@ BEGIN
END //
# TODO: ?#$@! magic
DROP FUNCTION IF EXISTS CreateStudentEx//
CREATE FUNCTION `CreateStudentEx`
( `pLastName` VARCHAR(30) CHARSET utf8,
......@@ -821,7 +818,6 @@ CREATE FUNCTION `ChangeDisciplineSubject`
) RETURNS int(11)
NO SQL
BEGIN
DECLARE vChecker INT;
DECLARE EXIT HANDLER FOR SQLEXCEPTION RETURN -1;
IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) OR
......@@ -845,7 +841,7 @@ CREATE FUNCTION `ChangeDisciplineGrade`
) RETURNS int(11)
NO SQL
BEGIN
DECLARE vChecker INT DEFAULT -1;
DECLARE vCurGradeID INT DEFAULT -1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION RETURN -1;
IF InternalIsMapLocked(pDisciplineID) OR
......@@ -854,18 +850,22 @@ BEGIN
RETURN -1;
END IF;
SELECT disciplines.GradeID INTO vChecker
# get current grade
SELECT disciplines.GradeID INTO vCurGradeID
FROM `disciplines`
WHERE disciplines.ID = pDisciplineID
LIMIT 1;
IF vChecker != pGradeID THEN
DELETE FROM `disciplines_groups`
WHERE disciplines_groups.DisciplineID = pDisciplineID;
DELETE FROM `disciplines_students`
WHERE disciplines_students.DisciplineID = pDisciplineID;
IF vCurGradeID = pGradeID THEN
RETURN 0;
END IF;
# delete all students
DELETE FROM `disciplines_groups`
WHERE disciplines_groups.DisciplineID = pDisciplineID;
DELETE FROM `disciplines_students`
WHERE disciplines_students.DisciplineID = pDisciplineID;
# set grade
UPDATE `disciplines`
SET disciplines.GradeID = pGradeID
WHERE disciplines.ID = pDisciplineID
......
......@@ -355,8 +355,7 @@ CREATE PROCEDURE `SearchTeachers`
NO SQL
BEGIN
DECLARE vAuthorID INT DEFAULT -1;
SELECT disciplines.AuthorID
INTO vAuthorID
SELECT disciplines.AuthorID INTO vAuthorID
FROM `disciplines`
WHERE disciplines.ID = pDisciplineID
LIMIT 1;
......@@ -370,12 +369,8 @@ BEGIN
view_teachers.DepName,
(view_teachers.TeacherID = vAuthorID) AS 'IsAuthor'
FROM `view_teachers`
WHERE NOT EXISTS( SELECT disciplines_teachers.ID
FROM `disciplines_teachers`
WHERE disciplines_teachers.TeacherID = view_teachers.TeacherID AND
disciplines_teachers.DisciplineID = pDisciplineID) AND
(pDepartmentID = 0 OR pDepartmentID = view_teachers.DepID ) AND
pFacultyID = view_teachers.FacultyID AND
WHERE InternalIsTeacherBounded(view_teachers.TeacherID, pDisciplineID) AND
view_teachers.FacultyID = pFacultyID AND
CONCAT( view_teachers.LastName, view_teachers.FirstName, view_teachers.SecondName)
LIKE CONCAT('%', pFullName, '%')
ORDER BY view_teachers.FacultyID ASC,view_teachers.DepName ASC,
......@@ -392,7 +387,7 @@ DROP PROCEDURE IF EXISTS GetStudents//
CREATE PROCEDURE `GetStudents` (IN `pGroupID` INT)
NO SQL
BEGIN
SELECT view_students.StudentID AS 'ID',
SELECT view_students.StudentID AS 'ID',
view_students.LastName,
view_students.FirstName,
view_students.SecondName,
......@@ -413,7 +408,7 @@ CREATE PROCEDURE `GetStudentsByFaculty` ( IN `pFacultyID` INT
)
NO SQL
BEGIN
SELECT view_students.StudentID AS 'ID',
SELECT view_students.StudentID AS 'ID',
view_students.LastName,
view_students.FirstName,
view_students.SecondName,
......@@ -435,61 +430,61 @@ CREATE PROCEDURE `SearchStudents`
( IN `pGradeID` INT, IN `pGroupID` INT, IN `pFacultyID` INT,
IN `pFullName` VARCHAR(100) CHARSET utf8,
IN `pDisciplineID` INT)
NO SQL
BEGIN
SELECT view_students.StudentID AS 'ID',
view_students.LastName,
view_students.FirstName,
view_students.SecondName,
view_students.GradeID,
view_students.GradeNum,
view_students.Degree,
view_students.GroupID,
view_students.GroupNum
FROM `view_students`
LEFT JOIN `disciplines_students` ON disciplines_students.StudentID = view_students.StudentID AND
disciplines_students.DisciplineID = pDisciplineID
LEFT JOIN `disciplines_groups` ON disciplines_groups.GroupID = view_students.GroupID AND
disciplines_groups.DisciplineID = pDisciplineID
WHERE view_students.FacultyID = pFacultyID AND
view_students.GradeID = pGradeID AND
(view_students.GroupID = pGroupID OR pGroupID = 0) AND
CONCAT(view_students.LastName, view_students.FirstName, view_students.SecondName)
NO SQL
BEGIN
SELECT view_students.StudentID AS 'ID',
view_students.LastName,
view_students.FirstName,
view_students.SecondName,
view_students.GradeID,
view_students.GradeNum,
view_students.Degree,
view_students.GroupID,
view_students.GroupNum
FROM `view_students`
LEFT JOIN `disciplines_students` ON disciplines_students.StudentID = view_students.StudentID AND
disciplines_students.DisciplineID = pDisciplineID
LEFT JOIN `disciplines_groups` ON disciplines_groups.GroupID = view_students.GroupID AND
disciplines_groups.DisciplineID = pDisciplineID
WHERE view_students.FacultyID = pFacultyID AND
view_students.GradeID = pGradeID AND
(view_students.GroupID = pGroupID OR pGroupID = 0) AND
CONCAT(view_students.LastName, view_students.FirstName, view_students.SecondName)
LIKE CONCAT('%', pFullName, '%') AND
disciplines_groups.ID IS NULL AND
(disciplines_students.Type IS NULL OR disciplines_students.Type != 'attach')
ORDER BY view_students.GradeID ASC,
view_students.GroupID ASC;
END //
disciplines_groups.ID IS NULL AND
(disciplines_students.Type IS NULL OR disciplines_students.Type != 'attach')
ORDER BY view_students.GradeID ASC,
view_students.GroupID ASC;
END //
# TODO: --TeacherID param
# TODO: only this procedure
# all students takes that course or detached
# all students in general groups, that take course (with detached)
DROP PROCEDURE IF EXISTS GetStudentsForDiscipline//
CREATE PROCEDURE `GetStudentsForDiscipline`
( IN `pTeacherID` INT, IN `pDisciplineID` INT)
NO SQL
BEGIN
SELECT view_disciplines_students.StudentID AS 'ID',
view_disciplines_students.LastName,
view_disciplines_students.FirstName,
view_disciplines_students.SecondName,
view_disciplines_students.GradeID,
view_disciplines_students.GradeNum,
view_disciplines_students.Degree,
view_disciplines_students.GroupID,
view_disciplines_students.GroupNum,
view_disciplines_students.AttachType AS 'AttachType'
FROM `view_disciplines_students`
WHERE view_disciplines_students.DisciplineID = pDisciplineID
ORDER BY (view_disciplines_students.AttachType IS NULL OR
view_disciplines_students.AttachType = 'detach') DESC,
view_disciplines_students.GradeID ASC,
view_disciplines_students.GroupNum ASC,
view_disciplines_students.LastName ASC,
view_disciplines_students.FirstName ASC;
END //
NO SQL
BEGIN
SELECT view_disciplines_students.StudentID AS 'ID',
view_disciplines_students.LastName,
view_disciplines_students.FirstName,
view_disciplines_students.SecondName,
view_disciplines_students.GradeID,
view_disciplines_students.GradeNum,
view_disciplines_students.Degree,
view_disciplines_students.GroupID,
view_disciplines_students.GroupNum,
view_disciplines_students.AttachType AS 'AttachType'
FROM `view_disciplines_students`
WHERE view_disciplines_students.DisciplineID = pDisciplineID
ORDER BY (view_disciplines_students.AttachType IS NULL OR
view_disciplines_students.AttachType = 'detach') DESC,
view_disciplines_students.GradeID ASC,
view_disciplines_students.GroupNum ASC,
view_disciplines_students.LastName ASC,
view_disciplines_students.FirstName ASC;
END //
# TODO: --TeacherID param
......@@ -497,28 +492,27 @@ NO SQL
DROP PROCEDURE IF EXISTS GetStudentsForRating//
CREATE PROCEDURE `GetStudentsForRating`
( IN `TeacherID` INT, IN `pDisciplineID` INT)
NO SQL
BEGIN
SELECT view_disciplines_students.StudentID AS 'ID',
view_disciplines_students.LastName,
view_disciplines_students.FirstName,
view_disciplines_students.SecondName,
view_disciplines_students.GradeID,
view_disciplines_students.GradeNum,
view_disciplines_students.Degree,
view_disciplines_students.GroupID,
view_disciplines_students.GroupNum,
(view_disciplines_students.AttachType IS NOT NULL AND
view_disciplines_students.AttachType = 'attach') AS 'IsAttached'
FROM `view_disciplines_students`
WHERE view_disciplines_students.DisciplineID = pDisciplineID AND
(view_disciplines_students.AttachType IS NULL OR
view_disciplines_students.AttachType = 'attach')
ORDER BY view_disciplines_students.GradeID ASC,
view_disciplines_students.GroupNum ASC,
view_disciplines_students.LastName ASC,
view_disciplines_students.FirstName ASC;
END //
NO SQL
BEGIN
SELECT view_disciplines_students.StudentID AS 'ID',
view_disciplines_students.LastName,
view_disciplines_students.FirstName,
view_disciplines_students.SecondName,
view_disciplines_students.GradeID,
view_disciplines_students.GradeNum,
view_disciplines_students.Degree,
view_disciplines_students.GroupID,
view_disciplines_students.GroupNum,
(view_disciplines_students.AttachType IS NOT NULL) AS 'IsAttached'
FROM `view_disciplines_students`
WHERE view_disciplines_students.DisciplineID = pDisciplineID AND
(view_disciplines_students.AttachType IS NULL OR
view_disciplines_students.AttachType = 'attach')
ORDER BY view_disciplines_students.GradeID ASC,
view_disciplines_students.GroupNum ASC,
view_disciplines_students.LastName ASC,
view_disciplines_students.FirstName ASC;
END //
......@@ -528,7 +522,8 @@ NO SQL
# Label: disciplines
# -------------------------------------------------------------------------------------------
# TODO: haven't reference on it
# all disciplines for faculty in current semester
DROP PROCEDURE IF EXISTS GetDisciplines//
CREATE PROCEDURE `GetDisciplines` ( IN `pFacultyID` INT )
NO SQL
......@@ -537,7 +532,7 @@ BEGIN
view_disciplines.SubjectID,
view_disciplines.SubjectName,
view_disciplines.ExamType,
(view_disciplines_results.DisciplineRateMax = 100)
(view_disciplines_results.DisciplineRateMax = 100) AS 'IsMapCreated'
FROM `view_disciplines`
INNER JOIN `view_disciplines_results`
ON view_disciplines_results.DisciplineID = view_disciplines.DisciplineID
......@@ -548,12 +543,13 @@ END //
# variant 2
# processed format of output (after desequentialization)
# discipline1 {group1, group2, ...}, discipline2 {groupN, ...}, ...
DROP PROCEDURE IF EXISTS GetDisciplinesForTeacher//
CREATE PROCEDURE `GetDisciplinesForTeacher`(IN `pTeacherID` INT)
NO SQL
BEGIN
SELECT DISTINCT view_disciplines.DisciplineID AS 'ID',
SELECT DISTINCT view_disciplines.DisciplineID AS 'ID',
view_disciplines.ExamType,
view_disciplines.GradeID,
view_disciplines.GradeNum,
......@@ -568,9 +564,10 @@ BEGIN
view_disciplines.IsLocked
FROM `disciplines_teachers`
LEFT JOIN `disciplines_groups` ON disciplines_groups.DisciplineID = disciplines_teachers.DisciplineID
# left -> inner join with maybe NULL ?
LEFT JOIN `view_groups` ON view_groups.GroupID = disciplines_groups.GroupID
INNER JOIN `view_disciplines` ON disciplines_teachers.DisciplineID = view_disciplines.DisciplineID
LEFT JOIN `view_disciplines_results` ON view_disciplines_results.DisciplineID = view_disciplines.DisciplineID
INNER JOIN `view_disciplines_results` ON view_disciplines_results.DisciplineID = view_disciplines.DisciplineID
WHERE disciplines_teachers.TeacherID = pTeacherID AND
view_disciplines.SemesterID = @CurrentSemesterID
ORDER BY view_disciplines.GradeID ASC,
......@@ -580,7 +577,7 @@ BEGIN
END //
# TODO: slowpoke
# TODO: check this, review this
DROP PROCEDURE IF EXISTS GetDisciplinesForStudent//
CREATE PROCEDURE `GetDisciplinesForStudent`(IN `pStudentID` INT)
NO SQL
......@@ -609,7 +606,39 @@ BEGIN
END //
# get all disciplines for group, including disciplines, where students have attached status
DROP PROCEDURE IF EXISTS GetDisciplinesForGroup//
CREATE PROCEDURE `GetDisciplinesForGroup`(IN `pGroupID` INT)
NO SQL
BEGIN
(SELECT view_disciplines.DisciplineID,
view_disciplines.SubjectName,
view_disciplines.ExamType
FROM `disciplines_groups`
INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = disciplines_groups.DisciplineID
WHERE disciplines_groups.GroupID = pGroupID
) UNION DISTINCT
(SELECT view_disciplines.DisciplineID,
view_disciplines.SubjectName,
view_disciplines.ExamType
FROM `disciplines_students`
INNER JOIN `students` ON disciplines_students.StudentID = students.ID
INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = disciplines_students.DisciplineID
WHERE students.GroupID = pGroupID
);
END //
# TODO: kill view_rating
# TODO: slowpoke
# TODO: rename GetRatesForStudent
DROP PROCEDURE IF EXISTS GetMapForStudent//
CREATE PROCEDURE `GetMapForStudent`
( IN `pStudentID` INT, IN `pDisciplineID` INT)
......@@ -657,28 +686,7 @@ BEGIN
END //
DROP PROCEDURE IF EXISTS GetMapForStudentExam//
CREATE PROCEDURE `GetMapForStudentExam`
( IN `pStudentID` INT, IN `pDisciplineID` INT)
NO SQL
BEGIN
SELECT view_rating.ModuleID,
view_rating.ModuleName,
view_rating.SubmoduleID,
view_rating.SubmoduleName,
view_rating.SubmoduleRate AS 'MaxRate',
view_rating.SubmoduleType,
view_rating.Rate,
view_rating.Date,
view_rating.ModuleType
FROM `view_rating`
WHERE view_rating.StudentID = pStudentID AND
view_rating.DisciplineID = pDisciplineID
ORDER BY OrderModuleTypesForSession(view_rating.ModuleType) ASC,
view_rating.SubmoduleOrderNum ASC;
END //
# TODO: rename ~ GetRatesForStudent, Rating
DROP PROCEDURE IF EXISTS GetMapForStudentExam//
CREATE PROCEDURE `GetMapForStudentExam`
( IN `pStudentID` INT, IN `pDisciplineID` INT)
......@@ -702,34 +710,39 @@ BEGIN
END //
# TODO: rename GetRoadMap
# TODO: kill first param
# TODO: order hardcode
# get roadmap of discipline
DROP PROCEDURE IF EXISTS GetMapForDiscipline//
CREATE PROCEDURE `GetMapForDiscipline` ( IN `TeacherID` INT,
IN `pDisciplineID` INT
)
NO SQL
BEGIN
# kill first param
SELECT view_disciplines.SubjectID,
view_disciplines.SubjectName,
view_roadmap.ModuleID,
view_roadmap.ModuleName,
view_roadmap.ModuleType,
view_roadmap.SubmoduleID,
view_roadmap.SubmoduleName,
view_roadmap.SubmoduleRate AS 'MaxRate',
view_roadmap.SubmoduleType
FROM `view_roadmap`
INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = pDisciplineID
WHERE view_roadmap.DisciplineID = pDisciplineID AND
(view_roadmap.ModuleType != 'exam' OR view_roadmap.SubmoduleOrderNum = 1)
ORDER BY view_roadmap.ModuleType ^ 1 ASC,
# 1, 3, 2, 4 ASC
view_roadmap.ModuleOrderNum ASC,
view_roadmap.SubmoduleOrderNum ASC;
SELECT view_disciplines.SubjectID,
view_disciplines.SubjectName,
view_roadmap.ModuleID,
view_roadmap.ModuleName,
view_roadmap.ModuleType,
view_roadmap.SubmoduleID,
view_roadmap.SubmoduleName,
view_roadmap.SubmoduleRate AS 'MaxRate',
view_roadmap.SubmoduleType
FROM `view_roadmap`
INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = pDisciplineID
WHERE view_roadmap.DisciplineID = pDisciplineID AND
(view_roadmap.ModuleType != 'exam' OR view_roadmap.SubmoduleOrderNum = 1)
ORDER BY view_roadmap.ModuleType ^ 1 ASC,
# 1, 3, 2, 4 ASC
view_roadmap.ModuleOrderNum ASC,
view_roadmap.SubmoduleOrderNum ASC;
END //
# TODO: rename GetRoadMap
# TODO: kill first param
# get roadmap of discipline exam
DROP PROCEDURE IF EXISTS GetMapForDisciplineExam//
CREATE PROCEDURE `GetMapForDisciplineExam`
( IN `pTeacherID` INT, IN `pDisciplineID` INT)
......@@ -754,7 +767,7 @@ BEGIN
END //
# TODO: rename GetDisciplineInfo
DROP PROCEDURE IF EXISTS GetDisciplineInfoByID//
CREATE PROCEDURE `GetDisciplineInfoByID`( IN `pDisciplineID` INT )
NO SQL
......@@ -885,74 +898,8 @@ BEGIN
END //
# DROP PROCEDURE IF EXISTS GetReports//
# CREATE PROCEDURE `GetReports` ( IN `StudyGroupID` INT
# )
# NO SQL
# BEGIN
# # CREATE TEMPORARY TABLE IF NOT EXISTS `temp_disciplines` (
# # `DisciplineID` int(11) NOT NULL,
# # `MaxRate` int(11) NOT NULL DEFAULT '0',
# # PRIMARY KEY (`DisciplineID`)
# # ) ENGINE=MEMORY DEFAULT CHARSET=utf8 AS (
# # SELECT disciplines_groups.DisciplineID,
# # 0 AS 'MaxRate'
# # FROM `disciplines_groups`
# # WHERE disciplines_groups.StudyGroupID = StudyGroupID
# # UNION DISTINCT
# # SELECT disciplines_students.DisciplineID,
# # 0 AS 'MaxRate'
# # FROM `disciplines_students`
# # INNER JOIN `students` ON disciplines_students.ID = students.ID
# # WHERE students.StudyGroupID = StudyGroupID
# # );
# CREATE TEMPORARY TABLE IF NOT EXISTS `temp_disciplines`
# SELECT disciplines_groups.DisciplineID,
# 0 AS 'MaxRate'
# FROM `disciplines_groups`
# WHERE disciplines_groups.StudyGroupID = StudyGroupID
# UNION DISTINCT
# SELECT disciplines_students.DisciplineID,
# 0 AS 'MaxRate'
# FROM `disciplines_students`
# INNER JOIN `students` ON disciplines_students.ID = students.ID
# WHERE students.StudyGroupID = StudyGroupID;
# UPDATE `temp_disciplines`
# SET temp_disciplines.MaxRate = GetMaxRateForDisc(temp_disciplines.DisciplineID);
# SELECT students.ID AS 'StudentID',
# temp_disciplines.DisciplineID,
# temp_disciplines.MaxRate,
# GetRateForDisc(students.ID, temp_disciplines.DisciplineID) AS 'Rate'
# FROM `students`
# LEFT JOIN `temp_disciplines` ON 1=1
# WHERE students.StudyGroupID = StudyGroupID;
# END //
DROP PROCEDURE IF EXISTS GetDisciplinesForGroup//
CREATE PROCEDURE `GetDisciplinesForGroup`(IN `pGroupID` INT)
NO SQL
BEGIN
SELECT disciplines_groups.DisciplineID AS 'DisciplineID',
subjects.Name AS 'SubjectName',
disciplines.ExamType AS 'ExamType'
FROM `disciplines_groups`
INNER JOIN `disciplines` ON disciplines.ID = disciplines_groups.DisciplineID
INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID
WHERE disciplines_groups.GroupID = pGroupID
UNION DISTINCT
SELECT disciplines_students.DisciplineID AS "DisciplineID",
subjects.Name AS "SubjectName",
disciplines.ExamType AS "ExamType"
FROM `disciplines_students`
INNER JOIN `students` ON disciplines_students.StudentID = students.ID
INNER JOIN `disciplines` ON disciplines.ID = disciplines_students.DisciplineID
INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID
WHERE students.GroupID = pGroupID;
END //
DROP PROCEDURE IF EXISTS GetRatesForStudentsGroup//
......@@ -984,10 +931,7 @@ DROP PROCEDURE IF EXISTS GetFinalFormInfo//
CREATE PROCEDURE `GetFinalFormInfo`
(IN `pDisciplineID` INT, IN `pGroupID` INT)
NO SQL
BEGIN
DECLARE vCurSemester INT;
SET vCurSemester = @CurrentSemesterID;
BEGIN
SELECT study_groups.GroupNum AS 'GroupNum',
study_groups.Name AS 'GroupName',
grades.ID AS 'GradeID',
......@@ -1022,7 +966,7 @@ BEGIN
INNER JOIN `teachers` ON teachers.ID = disciplines.AuthorID
INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
INNER JOIN `job_positions` ON job_positions.ID = teachers.JobPositionID
INNER JOIN `semesters` ON semesters.ID = vCurSemester
INNER JOIN `semesters` ON semesters.ID = @CurrentSemesterID
WHERE study_groups.ID = pGroupID
LIMIT 1;
END //
......
......@@ -11,6 +11,7 @@ CREATE OR REPLACE VIEW `view_groups` AS
specializations.ID AS 'SpecID',
specializations.Name AS 'SpecName',
specializations.Abbr AS 'SpecAbbr',
specializations.Code AS 'SpecCode',
faculties.ID AS 'FacultyID',
faculties.Name AS 'FacultyName',
faculties.Abbr AS 'FacultyAbbr'
......@@ -76,13 +77,14 @@ CREATE OR REPLACE VIEW `view_disciplines` AS
CREATE OR REPLACE VIEW `view_disciplines_results` AS
SELECT modules.DisciplineID,
SELECT disciplines.ID AS 'DisciplineID',
SUM(submodules.MaxRate) AS 'DisciplineRateMax',
SUM(submodules.MaxRate*submodules.IsUsed) AS 'DisciplineRateCur'
FROM `submodules`
INNER JOIN `modules` ON modules.ID = submodules.ModuleID
RIGHT JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
WHERE (modules.Type = 'regular') OR (modules.Type = 'exam' AND submodules.OrderNum = 1)
GROUP BY modules.DisciplineID;
GROUP BY disciplines.ID;
CREATE OR REPLACE VIEW `view_disciplines_teachers` AS
......@@ -112,7 +114,7 @@ CREATE OR REPLACE VIEW `view_disciplines_students` AS
WHERE disciplines_students.DisciplineID = disciplines_groups.DisciplineID AND
disciplines_students.StudentID = view_students.StudentID
)
);
);
CREATE OR REPLACE VIEW `view_roadmap` AS
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment