CREATE PROCEDURE Add_Price(IN input_date DATE, IN input_corpname VARCHAR(30))
BEGIN
DECLARE RESULT VARCHAR(60) DEFAULT '';
DECLARE Year YEAR;
DECLARE MovieName VARCHAR(50);
DECLARE DetailTime DATE;
DECLARE CorpName VARCHAR(30);
DECLARE Price DOUBLE;
DECLARE COUNT INT DEFAULT 0;
DECLARE I INT DEFAULT 0;
DECLARE Cursor_Check CURSOR FOR SELECT M.Mname, M.Myear, I.Iprice, I.Itime FROM I LEFT JOIN M ON M.Mno = I.Mno LEFT JOIN C ON C.Cno = M.Cno WHERE C.Cname = input_corpname ORDER BY Itime ASC;
SELECT COUNT(*) INTO COUNT FROM I;
OPEN Cursor_Check;
REPEAT
SET I := I + 1;
FETCH Cursor_Check INTO MovieName, Year, Price, DetailTime;
IF input_date != DetailTime AND input_date < DetailTime AND Price < 100 THEN
SET @_Price = Price * 1.2;
UPDATE I SET I.Iprice = @_Price WHERE I.Itime = DetailTime;
ELSEIF input_date != DetailTime AND input_date < DetailTime AND Price >= 100 THEN
SET @_Price = Price * 1.1;
UPDATE I SET I.Iprice = @_Price WHERE I.Itime = DetailTime;
END IF;
SELECT CONCAT(M.Mname, '/', I.Iprice) AS '电影名称/票价'
FROM I
LEFT JOIN M ON M.Mno = I.Mno
LEFT JOIN C ON C.Cno = M.Cno
WHERE C.Cname = input_corpname ORDER BY Itime ASC;