Cálculo em SQL

01/07/2009

Tenho uma tabela com a seguinte estrutura:

ValorFixo FLOAT,
PercDesconto FLOAT,
ValorLimite FLOAT,
DescontarDependente CHAR(1)

Com os seguintes dados:

ValorFixo | PercDesconto | ValorLimite | DescontarDependente
0.00 | 0.50 | 10.00 | N
52.00 | 0.50 | 0.00 | S

Preciso montar um select que me informe o resultado do seguinte cálculo:

SELECT SUM
(
Valor = ValorFixo + (PercDesconto * 1200 / 100)

se Valor <= ValorLimite então
Valor = ValorLimite
senão
Valor = Valor (calculado anteriormente)

se DescontarDependente = S então
Valor = Valor * 3 (3 é o número de dependentes)
senão
Valor = Valor (calculado anteriormente)
) AS Total


Dgsfilho

Respostas

01/07/2009

Emerson

deve ser mais ou menos isto:
select 
  sum(
    (case when (ValorFixo + (PercDesconto * 1200 / 100)) > ValorLimite
          then ValorLimite
          else (ValorFixo + (PercDesconto * 1200 / 100))
     end) *
    (case when (DescontarDependente = ´S´)
          then NumeroDeDependentes
          else 1
     end)
  ) as Total



Responder Citar