この手順の目標は、曜日を使用してサービスの調整価格を決定することです。たとえば、週末は料金が 10% 高くなります。月曜日と金曜日は同じ料金です。また、火曜日から木曜日は 5% 割引されます。最後のメッセージは、新しい調整価格です。
私はこれを正しくやっていると思いました。しかし、宣言値で重大なエラーが発生しています。
どんな助けでも大歓迎です。ありがとうございました。
Create procedure DayOfWeek( inout p_price decimal(7,2), inout p_date date, out v_msg varchar(10))
begin
declare increase10 double;
set increase10 = p_price * (1.1);
declare decrease5 double;
set decrease5 = p_price * (0.95);
declare increase10cast varchar(10);
set increase10cast := cast(increase10 as char);
declare decrease5cast varchar(10);
set decrease5cast := cast(decrease10 as char);
declare regular varchar(10);
set regular := cast(p_price as char );
case
when p_price is null then
set v_msg := 'null';
when p_date is null then
set v_msg := 'null';
when weekday(p_date) in (0, 6) then
set v_msg := increase10cast;
when weekday(p_date) in (1, 5) then
set v_msg := regular;
when weekday(p_date) in (2, 2, 4) then
set v_msg := decrease5cast;
end case;
end;
#