我在执行此程序时遇到问题并且不知道如何修复它,这就是全部。
delimiter $$
create procedure Ex_XII(data_partidaTre date,data_chegadaTre date,horario_partidaTre time,horario_chegadaTre time,distanciaTre varchar(200),
id_CidOri_fk int,
id_CidDes_fk int,
id_Oni_fk int)
begin
DECLARE valor double;
if((select situacaoPol from Poltrona where Poltrona.id_Oni_fk=id_Oni_fk)='LIVRE')then
if(id_CidOri_fk != id_CidDes_fk)then
if(data_chegadaTre>=data_partidaTre)then
if(distanciaTre>0 and distanciaTre<50)then
set valor = 30;
insert into Trecho_Viagem values(null,data_partidaTre,data_chegadaTre,horario_partidaTre ,horario_chegadaTre ,distanciaTre,
valor,
id_CidOri_fk ,
id_CidDes_fk ,
id_Oni_fk );
else
if(distanciaTre>=50 and distanciaTre<200)then
set valor = 50;
else
set valor = 100;
end if;
end if;
else
select 'Isto não é uma máquina do tempo';
end if;
else
select 'Você já está nesta cidade';
end if;
else
select'Existem poltronas ocupadas';
end if;
end;
$$ delimiter ;
call Ex_XII('2000/12/12','2000/12/17','12:12:12','12:12:12','51',1,1,1);
答案 0 :(得分:0)
检查以下声明是否不会返回多行 - &gt;
if((select situacaoPol from Poltrona where Poltrona.id_Oni_fk=id_Oni_fk)='LIVRE')then
...
答案 1 :(得分:0)
我实际上成功了, 将第一个“IF”改为 if((从Poltrona选择idPol,其中'Ocupada')为空)然后