Ich habe eine gespeicherte Prozedur, die mir die falsche Antwort gibt. Ich habe das Verfahren gebeten, den Wert der Kfz-Versicherung zurückzugeben. Ich führe das Verfahren und geben Sie mir die Summe der Kfz-Versicherungsprämie, aber wenn ich es zum vierten Mal ausführen, geben Sie mir die AgeRange Select-Anweisung Wert. Ich habe den Code in eine neue Prozedur verschoben, aber immer noch gleich.Gespeicherte Prozedur gibt falschen Wert zurück
Mein Code
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
Jede Hilfe bitte ..
Frage ersetzen wollen: Warum diese in einer gespeicherten Prozedur durchgeführt wird und nicht im Anwendungscode? – Galz
@Galz es ist eine php-anwendung, gespeicherte prozedur könnte den job vervollständigen – imohd23