Array
(
)

Cálculo em SQL

Dgsfilho
   - 01 jul 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

Emerson
   - 01 jul 2009

deve ser mais ou menos isto:
#Código

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