我有一個存儲過程,不斷給我錯誤的答案。我問過程返回汽車保險的價值。我運行這個程序,給我所有的汽車保險費,但如果我第四次運行它,它會給我ageRange選擇聲明的價值。 我將代碼移入新程序,但仍然相同。存儲過程返回錯誤值
我的代碼
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `cal_motor_qoute`(in
coverID int , in dob date,
in sumMotor double , out QMsg varchar(200))
BEGIN
declare policy_cover , total , insRatio, ageExtra double;
declare ageRange int;
declare price_list varchar(200);
SELECT DATEDIFF(NOW(),dob)/365.25 AS ageRange from dual;
if (coverID = 1) then
set policy_cover = 0.002;
elseif (coverID = 2) then
set policy_cover = 0.0025;
elseif (coverID = 3) then
set policy_cover = 0.003;
elseif (coverID = 4) then
set policy_cover = 0.0035;
end if;
if (ageRange < 25) then
set ageExtra = 0.0005;
else
set ageExtra = 0.000;
end if;
set insRatio = policy_cover + ageExtra;
set total = (sumMotor * insRatio)* 10;
set QMsg = concat('total Premium is: ',total);
select @QMsg;
END
任何幫助,請..
問:這是爲什麼在存儲過程中完成的,而不是在應用程序代碼? – Galz
@Galz它的一個PHP應用程序,存儲過程可以完成作業 – imohd23