我需要根据培训课程的时间长短给客户打折。
要找出通过日期,必须首先知道客户所属的组ID。
然后,按照查找日期确定折扣的大小 这是一个在MS SQL中运行良好的脚本,但在MySql中它不起作用。
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetBonus`(
idStudent CHAR(36)
)
BEGIN
IF (SELECT COUNT(*) FROM (SELECT IdGroupe FROM GroupeStudent WHERE IdStudent = idStudent) groupeCourse) = 1 THEN
BEGIN
DECLARE CourseGroupeDate datetime;
SET CourseGroupeDate = (SELECT Date FROM CourseGroupe WHERE Id = (SELECT IdGroupe FROM GroupeStudent WHERE IdStudent = idStudent));
IF (CourseGroupeDate - INTERVAL NOW() MONTH) < 3 AND
(CourseGroupeDate - INTERVAL NOW() MONTH) > 0
THEN SELECT * FROM Discounts WHERE Id = '00000000-0000-0000-0000-000000000000';
ELSEIF (CourseGroupeDate - INTERVAL NOW() MONTH) < 6 AND
(CourseGroupeDate - INTERVAL NOW() MONTH) > 3
THEN SELECT * FROM Discounts WHERE Id = '00000000-0000-0000-0000-000000000001';
ELSEIF (CourseGroupeDate - INTERVAL NOW() MONTH) < 12 AND
(CourseGroupeDate - INTERVAL NOW() MONTH) > 6
THEN SELECT * FROM Discounts WHERE Id = '00000000-0000-0000-0000-000000000002';
END IF;
END;
END IF;
END
答案 0 :(得分:0)
CREATE PROCEDURE `GetBonus`(
idStudent CHAR(36)
)
BEGIN
IF (SELECT COUNT(groupeCourse.IdGroupe) FROM (SELECT IdGroupe FROM GroupeStudent WHERE GroupeStudent.IdStudent = idStudent) groupeCourse) = 1 THEN
BEGIN
SET @CourseGroupeDate := (SELECT Date FROM CourseGroupe WHERE Id = (SELECT GroupeStudent.IdGroupe FROM GroupeStudent WHERE GroupeStudent.IdStudent = idStudent));
IF (TIMESTAMPDIFF(MONTH, @CourseGroupeDate, now())) < 3 AND
(TIMESTAMPDIFF(MONTH, @CourseGroupeDate, now())) > 0
THEN SELECT * FROM Discounts WHERE Id = '00000000-0000-0000-0000-000000000000';
ELSEIF (TIMESTAMPDIFF(MONTH, @CourseGroupeDate, now())) < 6 AND
(TIMESTAMPDIFF(MONTH, @CourseGroupeDate, now())) > 3
THEN SELECT * FROM Discounts WHERE Id = '00000000-0000-0000-0000-000000000001';
ELSEIF (TIMESTAMPDIFF(MONTH, @CourseGroupeDate, now())) < 12 AND
(TIMESTAMPDIFF(MONTH, @CourseGroupeDate, now())) > 6
THEN SELECT * FROM Discounts WHERE Id = '00000000-0000-0000-0000-000000000002';
END IF;
END;
END IF;
END
所有细节,例如,有必要指定关于字段的表名称 GroupeStudent.IdStudent = idStudent