string sql

Firebird

19/12/2005

Ola Pessoal

Uso o FB 1.5

Dentro de uma string SQL ha a possibilidade de usar o IF ou outro
comando ?

Seria o seguinte:

Tenho que fazer uma consulta numa tabela e dentro desta tabela
tem uma variavel indicando o tipo de calculo que a consulta
tem que fazer por exemplo:

Se a variavel TIPO_CAL = D tera que multiplicar pelo valor do
DOLAR
E se a variavel TIPO_CAL = E tera que multiplicar pelo valor do
EURO

Tentei fazer um Select dentro de outro, mas como uso o Group
dentro da SQL e tem limitações de datas ele não funciona


Grato pela atençao


Claudio

[color=green:d5cdd417d5]Movido de Delphi para Interbase/Firebird[/color:d5cdd417d5]


Claudiocjr

Claudiocjr

Curtidas 0

Respostas

Bruno Belchior

Bruno Belchior

19/12/2005

Use o comando [b:281e724c7b]case[/b:281e724c7b]:
select 
(case
  when TipoCalculo = ´Soma´ then Campo1 + Campo2
  when TipoCalculo = ´Multiplicação´ then Campo1 * Campo2
  else Campo1 / Campo2
end) 
from Tabela



GOSTEI 0
Claudiocjr

Claudiocjr

19/12/2005

Obrigado Bruno pela dica

vou testar

Claudio


GOSTEI 0
Claudiocjr

Claudiocjr

19/12/2005

Ola Bruno

Testei string que vc me enviou, ela funcionou, mas o problema
é que eu não consegui colocar um GROUP BY nesta string

Tentei fazer de varias maneiras, mas dava um erro, não sei se
isto é possivel nesta string, umas das maneiras que montei foi assim


select Data_ent,Cliente
(case
when TipoCalculo = ´Soma´ then sum(Campo1 + Campo2)
when TipoCalculo = ´Multiplicação´ then sum(Campo1 * Campo2)
end) total
from Tabela
group by Data_ent,cliente

Só um exemplo

POderia me dar uma ajuda

Grato

Claudio


GOSTEI 0
Bruno Belchior

Bruno Belchior

19/12/2005

select Data_ent, Cliente
sum((case
when TipoCalculo = ´Soma´ then Campo1 + Campo2)
when TipoCalculo = ´Multiplicação´ then Campo1 * Campo2
end)) total
from Tabela
group by Data_ent, cliente



GOSTEI 0
Claudiocjr

Claudiocjr

19/12/2005

Grato Bruno vou testar

Claudio


GOSTEI 0
POSTAR