none
Resultado em branco RRS feed

  • Pergunta

  • Bom dia a todos,

    vejam se podem me ajudar.

    SQL

    SELECT
           MT.SERVICO,
           MT.CODTRF,  
           MT.NOME,
           MT.CODUND,
           MT.CAMPOLIVREVALOR2 AS 'QTDE',
           MT.CAMPOLIVREVALOR1 as 'CONTRATO',
    (MT.CAMPOLIVREVALOR2 * ISNULL(MT.CAMPOLIVREVALOR1, MT.VALORUNIT)),
          MT.VALORUNIT   AS VLR_UNIT,
           MT.IDTRF,
           MT.IDPRJ


     FROM MTRF AS MT
      INNER JOIN MPRJ    AS MP ON MP.CODCOLIGADA = MT.CODCOLIGADA AND MP.IDPRJ = MT.IDPRJ
    WHERE
    MT.INDIRETO <> '1'
    AND MP.CODPRJ = '02.0041'
    AND MT.ATIVA = '1'
    group by MT.SERVICO,MT.CODTRF,MT.NOME,MT.CODUND,MT.CAMPOLIVREVALOR2,MT.CAMPOLIVREVALOR1,MT.VALORUNIT,
    MT.IDTRF,MT.IDPRJ
    ORDER BY MT.CODTRF

    Resultado

    Nome                          Und      QTD

    RECUPERAÇÃO            NULL    NULL
    SERVIÇOS INICIAIS     NULL    NULL
    Engenharia                  VB    1.0000

    resultado esperado

    Nome                          Und      QTD

    RECUPERAÇÃO                   
    SERVIÇOS INICIAIS      
    Engenharia                  VB    1.0000

    Que ele trata o mesmo resultado porem aonde tiver valor Null, que venha em branco.

    obrigado a todos pela ajuda

    terça-feira, 17 de abril de 2012 14:29

Respostas

  • -- Se o Campo for inteiro
    SELECT 
    (cast(MT.CAMPOLIVREVALOR2 as int) * ISNULL(cast(MT.CAMPOLIVREVALOR1 as int), cast(MT.VALORUNIT as int)))
      FROM MTRF
      
    -- Se o Campo tiver casas decimais
    SELECT 
    (cast(MT.CAMPOLIVREVALOR2 as float) * ISNULL(cast(MT.CAMPOLIVREVALOR1 as float), cast(MT.VALORUNIT as float)))
      FROM MTRF
    

    Só tome cuidado: Se MT.VALORUNIT for nulo a multiplicação vai retornar nulo.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Ronnie Von terça-feira, 17 de abril de 2012 19:15
    terça-feira, 17 de abril de 2012 18:38
  • é isto que vc precisa?

    SELECT 
    (	cast(MT.CAMPOLIVREVALOR2 as float) * 
    	ISNULL(cast(MT.CAMPOLIVREVALOR1 as float), cast(ISNULL(MT.VALORUNIT,0) as float)))
      FROM MTRF

    

    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Ronnie Von terça-feira, 17 de abril de 2012 19:15
    terça-feira, 17 de abril de 2012 18:51

Todas as Respostas

  • Ronnie, boa tarde.

    Utilize a função ISNULL( <campo>, '')

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    terça-feira, 17 de abril de 2012 15:35
  • OK, Eduardo, mas veja o que apareceu agora, nessa condição abaixo como eu faço para usar o convert nessa situacao

    SELECT

    (MT.CAMPOLIVREVALOR2 * ISNULL(MT.CAMPOLIVREVALOR1, MT.VALORUNIT))
        
     FROM MTRF

    obrigado a todos

    
    
    
    terça-feira, 17 de abril de 2012 18:14
  • Ronnie,

    Vc precisa converter para qual tipo de dados?

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    terça-feira, 17 de abril de 2012 18:19
  • Eduardo preciso que seja para valor,obrigado

    terça-feira, 17 de abril de 2012 18:31
  • -- Se o Campo for inteiro
    SELECT 
    (cast(MT.CAMPOLIVREVALOR2 as int) * ISNULL(cast(MT.CAMPOLIVREVALOR1 as int), cast(MT.VALORUNIT as int)))
      FROM MTRF
      
    -- Se o Campo tiver casas decimais
    SELECT 
    (cast(MT.CAMPOLIVREVALOR2 as float) * ISNULL(cast(MT.CAMPOLIVREVALOR1 as float), cast(MT.VALORUNIT as float)))
      FROM MTRF
    

    Só tome cuidado: Se MT.VALORUNIT for nulo a multiplicação vai retornar nulo.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Ronnie Von terça-feira, 17 de abril de 2012 19:15
    terça-feira, 17 de abril de 2012 18:38
  • Eduardo, nao teria uma forma de quanto for NULL, o valor viesse em branco nao.

    terça-feira, 17 de abril de 2012 18:45
  • é isto que vc precisa?

    SELECT 
    (	cast(MT.CAMPOLIVREVALOR2 as float) * 
    	ISNULL(cast(MT.CAMPOLIVREVALOR1 as float), cast(ISNULL(MT.VALORUNIT,0) as float)))
      FROM MTRF

    

    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Ronnie Von terça-feira, 17 de abril de 2012 19:15
    terça-feira, 17 de abril de 2012 18:51
  • Valeu Eduardo pela força conseguimos resolver parabens
    terça-feira, 17 de abril de 2012 19:16