잘못된 대답을 계속 제공하는 저장 프로 시저가 있습니다. 나는 그 절차에 모터 보험의 가치를 되돌려달라고 요청했다. 나는 절차를 실행하고 저에게 모터 보험료의 합계를 주지만, 만약 내가 네 번째 시간 동안 그것을 실행한다면 그것은 나에게 ageRange select statement 값을줍니다. 코드를 새 프로 시저로 옮겼지만 여전히 동일합니다.저장 프로 시저가 잘못된 값을 반환합니다.
내 코드
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