私に間違った答えを与え続けているストアドプロシージャがあります。私は、自動車保険の価値を返還する手続きを尋ねました。私は手続きを実行して、私にモータ保険料の合計を与えますが、私が4回目に実行すると、ageRange select文の値が私に与えられます。 コードを新しいプロシージャに移動しましたが、それでも同じです。ストアドプロシージャが間違った値を返します
私のコード
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