MYSQL - код ошибки: 1242. Подзапрос возвращает более 1 строки - PullRequest
0 голосов
/ 01 июня 2018

Ну, у меня проблемы с выполнением этой процедуры, и я не знаю, как это исправить, вот и все.

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);

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Мне действительно удалось это сделать, изменив первый «IF» на if ((выберите idPol из Poltrona, где «Ocupada») равен нулю), тогда

0 голосов
/ 01 июня 2018

Убедитесь, что инструкция ниже не возвращает более одной строки ->

if((select situacaoPol from Poltrona where Poltrona.id_Oni_fk=id_Oni_fk)='LIVRE')then
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...