Fórum CASE em interbase 6 #60258
27/10/2008
0
eu queria aplicar em meu select uma restricao para uma soma.. seria o seguinte:
SUM(CASE WHEN F.CodPrc <> 301 AND F.CodPrc <> 302 AND F.CodPrc <> 305 THEN F.VlrPrc ELSE 0 END) AS VlrTot2
mas interbase 6 nao aceita CASe...
alguem tem alguma sugestao do que posso usar ao inves??
flou vlw
Pereiragbm
Curtir tópico
+ 0Posts
03/11/2008
Rodolpho123
Prq vc não migra a sua versão do Interbase para o FB 2.1? Algum motivo especial?
Gostei + 0
03/11/2008
Pereiragbm
Oi rodolfo
creio nao ser uma boa ideia.. sou novo no sistema, não sei o que terei que mudar a mais no sistema em delphi 6..
Gostei + 0
03/11/2008
Rodolpho123
Neste caso, o [b:3c0de47f18]case[/b:3c0de47f18] terá que ser feito no seu código D6 ou criar uma UDF (que eu não aconselho) para executar este case direto na qry. No FB 2.1, além de possuir o [b:3c0de47f18]case[/b:3c0de47f18] existe tmb um recurso nesta versão, este que é muito usado no Oracle, o [b:3c0de47f18]decode[/b:3c0de47f18], que nada mais é um ´case elegante´.
Gostei + 0
03/11/2008
Pereiragbm
quanto a usar um case no codigo do D6 mesmo.. nunca vi por enquanto um exemplo assim.. vc saberia dar um exemplo simples só para eu endenter?
pq no caso essa soma aí é apenas umas das colunas de um select bem grandinho ...
vlww
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)