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