[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