1.参数的设定
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flb5C49A-1619516341977)
2.展示的内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VrI6nihI-1619516341980)
3.综合展示的效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTNBpZX2-1619516341981)
4.调用过程
{call Pro_Report_CourseCompletion({0},{1})}
调用数据库里面的Pro_Report_CourseCompletion过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hEjPV8Sw-1619516341983)
5.可以在数据库里面查看
Pro_Report_CourseCompletion
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hx5fVbXv-1619516341985)
6.注意事项
(1)临时表在一条sql语句里面,只能打开一次,所以一开始写在一条语句里面的,后来只能分开进行插入;
(2)因为T_ClassPointRecord表里查询非常慢,所以,一开始就通过开始日期和结束日期,把范围查询出来,再插入到临时表里,后续的时间段的分析都从这个临时表tmp_ClassPointRecord里取出。
(3)在数据库里进行调试的时候经常找不到临时表。所以,要加入如下语句。开发完成后就可以删除。
DROP TABLE tmp_CourseCompletion;
DROP TABLE tmp_ClassPointRecord;
DROP TABLE tmp_CourseCompletion_Copy;
(4)视图VO_CourseCompletion 这个挂到PC端。
7.过程代码
CREATE DEFINER=`root`@`%` PROCEDURE `Pro_Report_CourseCompletion`(IN PStartDate Date,IN PEndDate Date)
BEGIN
IF PStartDate IS NULL OR PStartDate = '' THEN
SET PStartDate=NULL;
END IF;
IF PEndDate IS NULL OR PEndDate = '' THEN
SET PEndDate=NULL;
END IF;
-- DROP TABLE tmp_CourseCompletion;
-- DROP TABLE tmp_ClassPointRecord;
-- DROP TABLE tmp_CourseCompletion_Copy;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_CourseCompletion(
FStartDate DATE,
FAMBeforeEight INT,
FAMEightNine INT,
FAMNineTen INT,
FAMTenEleven INT,
FAMElevenTwelve INT,
FPMOneTwo INT,
FPMTwoThree INT,
FPMThreeFour INT,
FPMFourFive INT,
FPMFiveSix INT,
FPMSixSeven INT,
FPMSevenEight INT,
FPMAfterEight INT
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_CourseCompletion_Copy(
FStartDate