CASE em interbase 6

Firebird

27/10/2008

ola..

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

Pereiragbm

Curtidas 0

Respostas

Rodolpho123

Rodolpho123

27/10/2008

Olá pereiragbm,

Prq vc não migra a sua versão do Interbase para o FB 2.1? Algum motivo especial?


GOSTEI 0
Pereiragbm

Pereiragbm

27/10/2008

Olá pereiragbm, Prq vc não migra a sua versão do Interbase para o FB 2.1? Algum motivo especial?


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
Rodolpho123

Rodolpho123

27/10/2008

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..


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
Pereiragbm

Pereiragbm

27/10/2008

Rodolfo,
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
POSTAR