Макс функции не работают, возвращает минимальное значение функции - PullRequest
1 голос
/ 02 июля 2019

max функции не работают в моей хранимой процедуре, она возвращает то же значение с функцией min, но работает в редакторе sql. моя колонка int без знака. вот мой код:

эти коды ниже работают правильно, но не в моей хранимой процедуре.

select idPatient from tb_patient where nomPatient='CARRIE' and prenomPatient='Marie Claude' and idPatient>267; -- result 268
select max(idPatient) from tb_patient where nomPatient='CARRIE' and prenomPatient='Marie Claude'; -- result 268
select idPatient from tb_patient where nomPatient='CARRIE' and prenomPatient='Marie Claude'; -- result 267 268

drop procedure if exists findTwins;
delimiter ##
create procedure findTwins()
begin 
    declare getNom varchar(40);
    declare getPrenom varchar(40);
    declare getId int default 1;
    declare getId2 int default 1;
    if(select count(*) from tb_patient group by nomPatient,prenomPatient having count(*)=2 limit 1)
    then
        select nomPatient,prenomPatient into getNom,getPrenom from tb_patient group by nomPatient,prenomPatient having count(*)=2 limit 1; 
        set getId=(select min(idPatient) from tb_patient where nomPatient=getNom and prenomPatient=getPrenom);
        set getId2=(select  max(idPatient) from tb_patient where nomPatient=getNom and prenomPatient=getPrenom);
        select concat(getNom,' ',getPrenom,' ',getId,' ',getId2) as Patient;
    end if; 
end##

call findTwins();

результат этого запроса должен быть: CARRIE Marie Claude 267 268 но я получаю КЭРРИ Мари Клод 267 267 Что бы я ни делал, я не могу найти 268 из своей хранимой процедуры, даже когда я просто запускаю select ... где ... без функции min или max, я получаю только 267. структура таблицы.

CREATE TABLE tb_patient (
    idPatient INT UNSIGNED AUTO_INCREMENT PRIMARY KEY ,
    nomPatient varchar(40) not null,
    prenomPatient varchar(40) not null,
    emailPatient varchar(40) unique, 
    index ind_patient_name(nomPatient,prenomPatient))
ngine=innoDB;
...