如果在mysql查询中

时间:2018-01-22 08:52:13

标签: mysql workbench

我试图进行此查询,但我发现IF语句存在问题,我也尝试插入分隔符或者开始,否则它的工作方式不同。

如何根据变量的值来设置不同的查询?

  create or replace view PazientiTarget as
select P.CodFiscale
from Paziente P INNER JOIN Esordio E ON E.Paziente=P.CodFiscale
NATURAL JOIN Terapia T
where E.Patologia='Ipertensione'
    and E.Cronica='si'
    and E.DataGuarigione is null
    and E.DataEsordio + interval 10 year < current_date()
group by T.Paziente,T.Farmaco
having count(distinct T.Farmaco)<=2;

create or replace view Appoggio as
select T.Farmaco,T.Patologia,count(distinct T.Paziente) as Numero
from Terapia T NATURAL JOIN Esordio E inner join Patologia PA on PA.Nome=E.Patologia
where T.Paziente in (select PT.CodFiscale
                     from PazientiTarget PT)
and T.Patologia<>'Ipertensione'
and PA.ParteCorpo='Cuore'
and E.Cronica='si'
group by T.Farmaco,T.Patologia;

set @controllo=( select count(*)
             FROM Appoggio A
             where A.Numero=(select max(A1.Numero)
                           from Appoggio A1));


if @controllo > 1 then
    select*
    from Appoggio A
    limit 0;



else

select*
from Appoggio A
where A.Numero=(select max(A1.Numero)
                from Appoggio A1
                where A.Farmaco<>A1.Farmaco); 

end if;

0 个答案:

没有答案