[firebase-br] Case com case?

MAURICIO COSTA maximmumsistemas em gmail.com
Dom Ago 19 10:40:15 -03 2012


Veja o case que faço em um campo calculado. Acho que isso deve te ajudar.
 VENDA_PRODUTOS           NUMERIC(18,2) COMPUTED BY (Cast(
   Case
     When
       (Select
         Sum(VL_TOTAL_VENDA)
       From VENDAS
       Where IDMOVIMENTO = MOVIMENTO_CAIXA.ID
       And DELETADO = 'N') Is Null Then
     0.00
     Else
      (Select
          Sum(VL_TOTAL_VENDA)
       From VENDAS
       Where IDMOVIMENTO = MOVIMENTO_CAIXA.ID
       And DELETADO = 'N')
    end
As Numeric(18,2))),
    VALOR_RECEBIDO_DINHEIRO  NUMERIC(18,2) COMPUTED BY (Cast(
  Case
    When
      (Select
        Sum(P.VALOR)
      From PAGAMENTO P
      Where P.IDMOVIMENTO = MOVIMENTO_CAIXA.ID
      And P.ID = 1) Is Null Then
    0.00
    Else
      (Select
        Sum(P.VALOR)
      From PAGAMENTO P
      Where P.IDMOVIMENTO = MOVIMENTO_CAIXA.ID
      And P.ID = 1)
    end
As Numeric(18,2))),

Em 18 de agosto de 2012 15:42, Zottis <bzottis em ig.com.br> escreveu:

> Olá Turma, tem como fazer um cas dentro de outro?
>
>
>
> Alguém Saberia como resolver?
>
> Agradeço desde já.
>
>
>
> Tenho o seguinte caso:
>
>
>
>         case BL.tipo_devedor
>
>              when 'MORADOR' then
>
>                         (select M.cpf from moradores M where BL.cod_devedor
> = M.cod_morador)
>
>               when 'IMOBILI' then
>
>                         (select I.cnpj from imobiliarias I where
> BL.cod_devedor = I.cod_imobiliaria)
>
>               when  'PROPRIE' then
>
>                         (select P.cpf from proprietarios P where
> BL.cod_devedor = P.cod_proprietario)
>
>               end as SacadoDocumento,
>
>
>
> mas preciso fazer uma busca para saber se é Pessoa física ou jurídica
>
> então preciso fazer um lengh para contar os dígitos do documento
>
>
>
>         case BL.tipo_devedor
>
>              when 'MORADOR' then
>
>                      case   (select M.cpf from moradores M where
> BL.cod_devedor = M.cod_morador)
>
>                             when  lengh ((select M.cpf from moradores M
> where BL.cod_devedor = M.cod_morador)) = 11 then
>
>                                ……
>
>               when 'IMOBILI' then
>
>                         (select I.cnpj from imobiliarias I where
> BL.cod_devedor = I.cod_imobiliaria)
>
>               when  'PROPRIE' then
>
>                         (select P.cpf from proprietarios P where
> BL.cod_devedor = P.cod_proprietario)
>
>               end as SacadoDocumento,
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista