none
Consulta com Case when na coluna especificada RRS feed

  • Pergunta

  • Olá pessoal,

    Estou com uma duvida.

    Eu fiz um select para que em uma determinada coluna (Data de Entrega) ele me retorne a data ou se esteja NULL utilizando o isnull preencha o campo como "NÃO ENTREGUE".

    declare 

    @ini datetime = '2014-10-01',

    @fim datetime = '2014-10-31'

    select S.nf_nota AS [N° NF], CONVERT ( char (10),NF_DTEMIS,105) AS FATURAMENTO, me_ds as [Operação], sv.ve_nr as [N° Veiculo], 

    ISNULL (CONVERT (char (12),v.ve_dtent,105),'NÃO ENTREGUE') as [Data de Entrega], 

    sv.ve_nr from ger_nfs s join ger_nfsv sv on s.nf_nr=sv.nf_nr join ger_ve v on v.ve_nr=sv.ve_nr join ger_cg c on c.cg_cd=s.cg_cd join tab_mod m on m.mod_cd=v.mod_cd join tab_me me on me.me_cd=s.me_cd

    where s.nf_dtemis between @ini and @fim and nf_dtcanc is null and s.me_cd like 'VE%' and dep_cd ='VN'

    ResultadoResultado da Consulta

    Até ai tudo bem!

    Agora a minha duvida é o seguinte.

    Eu preciso que quando a operação seja do tipo "DC" (Devolução de Compra) preenche na linha do veiculo especifico na coluna Data de Entrega como "DEVOLVIDO".

    Tentei utilizar o Case when  na seleção das colunas mas não consegui.

    quinta-feira, 13 de novembro de 2014 13:57

Respostas

Todas as Respostas

  • Tente colocar na coluna assim:

    SELECT
        Campo1,
        Campo2,
        CASE WHEN CampoOperacao = 'DC' THEN 'DEVOLUÇÃO' 
             WHEN CampoOperacao = 'VDA'THEN 'VENDIDO' 
             ELSE CampoDataCompra  END as Data_Compra
    FROM
       Tabela
     
    Veja se esta estrutura naum te ajuda!
    Att,
    Rafael.


    **** SER A RESPOSTA FOR UTIL, NÃO ESQUEÇA DE MARCA-LÁ =P ****

    quinta-feira, 13 de novembro de 2014 14:28
  • Outro exemplo que da pra testar sem precisar criar nada:
    DECLARE @variavel VARCHAR(50) 
    SET @variavel = 1
    
    
    SELECT
        CASE WHEN @variavel = 1 THEN 'DEVOLUÇÃO' 
             WHEN @variavel = 2 THEN 'VENDIDO' 
             ELSE @variavel   END as Resultado


    **** SER A RESPOSTA FOR UTIL, NÃO ESQUEÇA DE MARCA-LÁ =P ****

    quinta-feira, 13 de novembro de 2014 14:29
  • Deleted
    quinta-feira, 13 de novembro de 2014 16:04
  • NÃO DEU CERTO, MAS JÁ AJUDOU MUITO.

    OBRIGADO.

    sexta-feira, 14 de novembro de 2014 16:53
  • EU MODIFIQUEI UM POUCO A CONSULTA, TINHA UMA FALHA AI JÁ ME RETORNOU MAIS CORRETAMENTE.

    declare 

    @ini datetime = '2014-10-01',

    @fim datetime = '2014-10-31'

    select S.nf_nota AS [N° NF], CONVERT ( char (10),NF_DTEMIS,105) AS FATURAMENTO, me_ds as [Operação], sv.ve_nr as [N° Veiculo], sv.ve_nr,  

     CASE WHEN v.ve_dtent is null and s.me_cd like 'DC%'  THEN 'DEVOLVIDO' 

             else ISNULL (CONVERT (char (12),v.ve_dtent,105),'NÃO ENTREGUE') end as [Data de Entrega]

     from ger_nfs s join ger_nfsv sv on s.nf_nr=sv.nf_nr join ger_ve v on v.ve_nr=sv.ve_nr join ger_cg c on c.cg_cd=s.cg_cd join tab_mod m on m.mod_cd=v.mod_cd join tab_me me on me.me_cd=s.me_cd

    where s.nf_dtemis between @ini and @fim and nf_dtcanc is null  and dep_cd ='VN' and me.me_tpmov ='VE'

    sexta-feira, 14 de novembro de 2014 16:56
  • Valeu pela dica irmão, mina consulta estava incompleta.

    eu modifiquei e já me retornou certo, mas mesmo assim voce clareou minhas ideias.

    obrigadão.

    declare 

    @ini datetime = '2014-10-01',

    @fim datetime = '2014-10-31'

    select S.nf_nota AS [N° NF], CONVERT ( char (10),NF_DTEMIS,105) AS FATURAMENTO, me_ds as [Operação], sv.ve_nr as [N° Veiculo], sv.ve_nr,  

     CASE WHEN v.ve_dtent is null and s.me_cd like 'DC%'  THEN 'DEVOLVIDO' 

             else ISNULL (CONVERT (char (12),v.ve_dtent,105),'NÃO ENTREGUE') end as [Data de Entrega]

     from ger_nfs s join ger_nfsv sv on s.nf_nr=sv.nf_nr join ger_ve v on v.ve_nr=sv.ve_nr join ger_cg c on c.cg_cd=s.cg_cd join tab_mod m on m.mod_cd=v.mod_cd join tab_me me on me.me_cd=s.me_cd

    where s.nf_dtemis between @ini and @fim and nf_dtcanc is null  and dep_cd ='VN' and me.me_tpmov ='VE'

    sexta-feira, 14 de novembro de 2014 17:06