[firebase-br] Select otimizado

Paulo Sérgo Feix paulinhofeix em gmail.com
Seg Jun 2 15:15:57 -03 2014


ok se eu nao estou enganado da para usar tambem o IIF(:tipo = 2)
blz


Em 2 de junho de 2014 13:06, Renan Rogowski Pozzo <renanrpozzo em gmail.com>
escreveu:

> No FB.
>
> Abraço,
> Renan Rogowski Pozzo
>
> *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos 37:5*
>
>
> Em 2 de junho de 2014 14:50, Paulo Sérgo Feix <paulinhofeix em gmail.com>
> escreveu:
>
> > Só para entender você esta fazendo esta Procedure no Delphi ou FB ????
> >
> >
> > Em 2 de junho de 2014 12:35, Renan Rogowski Pozzo <renanrpozzo em gmail.com
> >
> > escreveu:
> >
> > > Resolvi da seguinte forma:
> > > coloquei a consulta do where em uma variável e carrego ela de acordo
> com
> > a
> > > condição:
> > >
> > > Ex.:
> > > -- SQL recebe a condição
> > >
> > > *  if (:tipo = 2) then*
> > > *    sql = ' (ped.id_cliente = '|| :id_cliente ||') ' ;*
> > > *  else*
> > > *    sql = ' (ped.id_cliente = '|| :id_cliente ||' or ped.id_indicador
> =
> > > '||:id_cliente||') ';*
> > >
> > > -- no select, que coloquei dentro de um execute statement, passo a
> > variável
> > > no final
> > >
> > > *  for*
> > > *    execute statement('*
> > > *      select ....*
> > >
> > > *    where '||:sql')*
> > >
> > > Assim não crio repetições do select dentro da procedure.
> > >
> > > Abraço,
> > > Renan Rogowski Pozzo
> > >
> > > *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos
> > 37:5*
> > >
> > >
> > > Em 2 de junho de 2014 11:25, Renan Rogowski Pozzo <
> renanrpozzo em gmail.com
> > >
> > > escreveu:
> > >
> > > > Olá Rodrigo,
> > > > justamente a ideia é otimizar a consulta.
> > > > Queria em contrapartida reduzir código na procedure.
> > > >
> > > > Abraço,
> > > > Renan Rogowski Pozzo
> > > >
> > > > *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos
> > > 37:5*
> > > >
> > > >
> > > > Em 2 de junho de 2014 11:18, Paulo Sérgo Feix <
> paulinhofeix em gmail.com>
> > > > escreveu:
> > > >
> > > > Na procedure vc pode faz, eu tenho uma desta forma
> > > >>
> > > >>  WHERE
> > > >>     (
> > > >>      (UPPER(P.IDN_STATUS) = UPPER('A'))
> > > >>      AND
> > > >>      (
> > > >>       (
> > > >>        (:ISECCION > 0)
> > > >>        AND
> > > >>        (P.SECCION = :ISECCION)
> > > >>        )
> > > >>        OR
> > > >>        (:ISECCION IS NULL)
> > > >>        )
> > > >>      )
> > > >>
> > > >>
> > > >> Em 2 de junho de 2014 09:09, Renan Rogowski Pozzo <
> > > renanrpozzo em gmail.com>
> > > >> escreveu:
> > > >>
> > > >> > Bom dia,
> > > >> > gostaria de saber se é possível, ou se alguém tem alguma sugestão
> > > para a
> > > >> > situação abaixo:
> > > >> >
> > > >> > Em um select que tenho em uma procedure, a clausula where vai
> mudar
> > > >> > dependendo da condição.
> > > >> >
> > > >> > Ex.:
> > > >> > if (:tipo = 2) then
> > > >> > select
> > > >> > ... where (ped.id_cliente = :id_cliente)
> > > >> > else
> > > >> > select
> > > >> > ... where (ped.id_cliente = :id_cliente or ped.ind = :id_cliente)
> > > >> >
> > > >> > Irá mudar apenas a parte do where, o restante do select é igual.
> > > >> > Existe uma forma de eu aproveitar o mesmo select e mudar apenas a
> > > >> cláusula
> > > >> > where dependendo da minha condição?
> > > >> >
> > > >> > Abraço,
> > > >> > Renan Rogowski Pozzo
> > > >> >
> > > >> > *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará."
> > Salmos
> > > >> 37:5*
> > > >> > ______________________________________________
> > > >> > FireBase-BR (www.firebase.com.br) - Hospedado em
> www.locador.com.br
> > > >> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > >> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > >> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > > >> >
> > > >>
> > > >>
> > > >>
> > > >> --
> > > >> Paulinho Sérgio Feix
> > > >> ______________________________________________
> > > >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > >> http://www.firebase.com.br/fb/artigo.php?id=1107
> > > >> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > > >>
> > > >
> > > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> >
> >
> >
> > --
> > Paulinho Sérgio Feix
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Paulinho Sérgio Feix



Mais detalhes sobre a lista de discussão lista