[firebase-br] Maravilhas do comando CASE WHEN
    Ana Virginia da Silva 
    virginia em farsoft.com.br
       
    Dom Maio 20 10:18:49 -03 2007
    
    
  
Eu adoro SQL...rsrsrs...só para exemplificar...
select
sum(
case
when ((o.percentual_reducao > 0) and (o.percentual_acrescimo>0)) then
         coalesce(cast (
         (o.valor*o.qtde)
         +
         ((o.valor*o.qtde)*o.percentual_acrescimo/100)
         -
         ((o.valor*o.qtde)*o.percentual_reducao/100)
         as numeric(10,2)),0.00)
when (o.percentual_acrescimo > 0) then
         coalesce(cast (
         (o.valor*o.qtde)
         +
         ((o.valor*o.qtde)*o.percentual_acrescimo/100)
         as numeric(10,2)),0.00)
when (o.percentual_reducao > 0) then
         coalesce(cast (
         (o.valor*o.qtde)
         -
         ((o.valor*o.qtde)*o.percentual_reducao/100)
         as numeric(10,2)),0.00)
else
         coalesce(cast (
         (o.valor*o.qtde) as numeric(10,2)),0.00)
end) as total
from OUTRAS_DESPESAS o
LEFT OUTER JOIN SETORES_ESTOQUE se
on se.id_setorestoque=o.is_setor
LEFT OUTER JOIN PESSOAS p
on p.id_pessoa=o.is_pessoa
where o.is_prochosp=:is_prochosp
and o.codigodespesa=:codigodespesa
    
    
Mais detalhes sobre a lista de discussão lista