1、创建存储过程
SQL预览
DROP PROCEDURE IF EXISTS `sp_evaluation_point`;
CREATE DEFINER = `root`@`%` PROCEDURE `sp_evaluation_point`()
BEGIN
#Routine body goes here...
#定义参数
DECLARE
yesterday date;
DECLARE
_day VARCHAR (50);
DECLARE
point INT (11);
DECLARE
begin_date VARCHAR (50);
DECLARE
end_date VARCHAR (50);
#设置值
SET yesterday = CURDATE() - 1;
SET begin_date = CONCAT(yesterday, ' 00:00:00');
SET end_date = CONCAT(yesterday, ' 23:59:59');
#数据插入到数据库
INSERT INTO st_evaluation_point (
_day,
user_id,
head_img,
dimension_id,
class_id,
grade_id,
point
) SELECT
DATE_FORMAT(
table1.evaluate_time,
'%Y-%m-%d'
),
table1.evaluated_user_id,
table2.path,
table6.dimension_id,
table4.classroom_id,
table5.grade_number,
SUM(table1.cert)
FROM
web_stu_evaluate table1
LEFT JOIN web_sch_image table2 ON table2.obj_id = table1.evaluated_user_id
AND table2.obj_type = '03'
LEFT JOIN web_sch_student table3 ON table3.user_id = table1.evaluated_user_id
LEFT JOIN web_student_classroom table4 ON table4.student_id = table3.id
LEFT JOIN web_sch_classroom table5 ON table5.id = table4.classroom_id
LEFT JOIN web_sch_quota table6 ON table6.id = table1.quota_id
WHERE
table1.evaluate_time >= begin_date
AND table1.evaluate_time <= end_date
GROUP BY
table1.evaluated_user_id;
END;
2、创建每隔一天运行存储过程的定时任务
CREATE DEFINER=`root`@`%`
EVENT `NewEvent`
ON SCHEDULE EVERY 1 DAY STARTS '2016-11-10 00:00:00'
ON COMPLETION PRESERVE
ENABLE
DO
call sp_evaluation_point();