mirror of
https://github.com/opelly27/WinStudentGoalTracker.git
synced 2026-05-20 15:47:35 +00:00
72 lines
2.4 KiB
SQL
72 lines
2.4 KiB
SQL
DELIMITER ;;
|
|
CREATE DEFINER=`root`@`%` PROCEDURE `sp_Student_GetFullProfile`(IN p_id_student CHAR(36))
|
|
BEGIN
|
|
-- Result set 1: Student card
|
|
SELECT
|
|
studentId,
|
|
identifier,
|
|
nextIepDate,
|
|
firstEntryDate,
|
|
lastEntryDate,
|
|
goalCount,
|
|
progressEventCount,
|
|
benchmarkCount
|
|
FROM v_student_card
|
|
WHERE studentId = p_id_student
|
|
LIMIT 1;
|
|
-- Result set 2: Goals
|
|
SELECT
|
|
s.`identifier` AS `studentIdentifier`,
|
|
vc.`goalId`,
|
|
vc.`goalParentId`,
|
|
vc.`description`,
|
|
vc.`category`,
|
|
vc.`baseline`,
|
|
vc.`targetCompletionDate`,
|
|
vc.`closeDate`,
|
|
vc.`achieved`,
|
|
vc.`closeNotes`,
|
|
vc.`progressEventCount`,
|
|
vc.`benchmarkCount`
|
|
FROM `v_goal_card` vc
|
|
INNER JOIN `student` s ON s.`id_student` = vc.`studentId`
|
|
WHERE vc.`studentId` = p_id_student
|
|
ORDER BY vc.`goalId`;
|
|
-- Result set 3: Benchmarks
|
|
SELECT
|
|
s.`identifier` AS `studentIdentifier`,
|
|
b.`id_benchmark` AS `benchmarkId`,
|
|
b.`id_goal` AS `goalId`,
|
|
g.`category` AS `goalCategory`,
|
|
b.`benchmark` AS `benchmark`,
|
|
b.`short_name` AS `shortName`,
|
|
u.`name` AS `createdByName`,
|
|
b.`created_at` AS `createdAt`,
|
|
b.`updated_at` AS `updatedAt`
|
|
FROM `benchmark` b
|
|
INNER JOIN `goal` g ON g.`id_goal` = b.`id_goal`
|
|
INNER JOIN `student` s ON s.`id_student` = g.`id_student`
|
|
LEFT JOIN `user` u ON u.`id_user` = b.`id_user_created`
|
|
WHERE g.`id_student` = p_id_student
|
|
ORDER BY b.`created_at` DESC;
|
|
-- Result set 4: Progress events (all goals for this student)
|
|
SELECT
|
|
vc.`progressEventId`,
|
|
vc.`goalId`,
|
|
vc.`content`,
|
|
vc.`createdAt`,
|
|
vc.`createdByName`
|
|
FROM `v_progress_event_card` vc
|
|
WHERE vc.`studentId` = p_id_student
|
|
ORDER BY vc.`createdAt` DESC;
|
|
-- Result set 5: Benchmark/progress-event associations
|
|
SELECT
|
|
peb.`id_progress_event` AS `progressEventId`,
|
|
peb.`id_benchmark` AS `benchmarkId`
|
|
FROM `progress_event_benchmark` peb
|
|
INNER JOIN `progress_event` pe ON pe.`id_progress_event` = peb.`id_progress_event`
|
|
INNER JOIN `goal` g ON g.`id_goal` = pe.`id_goal`
|
|
WHERE g.`id_student` = p_id_student;
|
|
END;;
|
|
DELIMITER ;
|