Fórum CASE em interbase 6 #60258

27/10/2008

0

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

Responder

Posts

03/11/2008

Rodolpho123

Olá pereiragbm,

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


Responder

Gostei + 0

03/11/2008

Pereiragbm

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


Responder

Gostei + 0

03/11/2008

Rodolpho123

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


Responder

Gostei + 0

03/11/2008

Pereiragbm

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar