none
Case com valor null e e com valor RRS feed

  • Pergunta

  • Prezados na Sql Abaixo ate entao esta facil,porem agora esta com a seguinte duvida,

    SQl

    SELECT

    B

    .HISTORICO,

     

    B

    .IDDEVOLUCAO,

    H

    .DESCRICAO+ ' - '+SPACE(1) + B.HISTORICO

    FROM

    FLAN B

    LEFT

    JOIN FLANCONT AS C ON C.CODCOLIGADA = B.CODCOLIGADA AND C.IDLAN = B.IDLAN

    LEFT

    JOIN CHISTP AS H ON H.CODCOLIGADA = C.CODCOLIGADA AND H.CODHISTP = C.CODHISTP

    WHERE

    B

    .IDLAN = '98759'

    AND

    B.TIPOCONTABILLAN=

    '2'

     

    AND B.IDDEVOLUCAO IS NOT NULL

    AND

    TIPO =

    '1'

    AND

    ((B.DATABAIXA >= '2010-01-01' AND B.DATABAIXA <= '2010-12-31')

    OR

    (

    B.DATABAIXA >= '2010-01-01' AND B.DATABAIXA <= '2010-12-31'))

    Resultado

    Devolução de Compras de Materiais Uso   98758       VR -  Devolução de Compras de Materiais Uso

    O que eu preciso, seria fazer uma casa quando a condição B.IDDEVOLUCAO IS NOT NULL, pegasse o B.HISTORICO , E Quando fosse o B.IDDEVOLUCAO  fosse null pegasse o H.DESCRICAO+ ' - '+SPACE(1) + B.HISTORICO.

    agradeço a ajuda de todos

    segunda-feira, 21 de março de 2011 15:25

Respostas

  • Ronnie Von, acredito que seja isto..

    SELECT
    B.HISTORICO,
    B.IDDEVOLUCAO,
    H.DESCRICAO + ' - '+SPACE(1) + B.HISTORICO,

    (CASE WHEN B.IDDEVOLUCAO IS NULL
        THEN H.DESCRICAO+ ' - '+SPACE(1) + B.HISTORICO ELSE 
        B.HISTORICO END) AS CAMPO
       
    FROM FLAN B
    LEFT JOIN FLANCONT AS C ON C.CODCOLIGADA = B.CODCOLIGADA AND C.IDLAN = B.IDLAN
    LEFT JOIN CHISTP AS H ON H.CODCOLIGADA = C.CODCOLIGADA AND H.CODHISTP = C.CODHISTP
    WHERE B.IDLAN = '98759' AND B.TIPOCONTABILLAN= '2' AND B.IDDEVOLUCAO IS NOT NULL
    AND TIPO = '1' AND ((B.DATABAIXA >= '2010-01-01' AND B.DATABAIXA <= '2010-12-31')
    OR (B.DATABAIXA >= '2010-01-01' AND B.DATABAIXA <= '2010-12-31'))

    • Marcado como Resposta Ronnie Von segunda-feira, 21 de março de 2011 19:17
    segunda-feira, 21 de março de 2011 15:32
  • Rafael, meu muito Obrgado me ajudou muito.. valeu

    • Marcado como Resposta Ronnie Von segunda-feira, 21 de março de 2011 19:16
    segunda-feira, 21 de março de 2011 19:16

Todas as Respostas

  • Ronnie Von, acredito que seja isto..

    SELECT
    B.HISTORICO,
    B.IDDEVOLUCAO,
    H.DESCRICAO + ' - '+SPACE(1) + B.HISTORICO,

    (CASE WHEN B.IDDEVOLUCAO IS NULL
        THEN H.DESCRICAO+ ' - '+SPACE(1) + B.HISTORICO ELSE 
        B.HISTORICO END) AS CAMPO
       
    FROM FLAN B
    LEFT JOIN FLANCONT AS C ON C.CODCOLIGADA = B.CODCOLIGADA AND C.IDLAN = B.IDLAN
    LEFT JOIN CHISTP AS H ON H.CODCOLIGADA = C.CODCOLIGADA AND H.CODHISTP = C.CODHISTP
    WHERE B.IDLAN = '98759' AND B.TIPOCONTABILLAN= '2' AND B.IDDEVOLUCAO IS NOT NULL
    AND TIPO = '1' AND ((B.DATABAIXA >= '2010-01-01' AND B.DATABAIXA <= '2010-12-31')
    OR (B.DATABAIXA >= '2010-01-01' AND B.DATABAIXA <= '2010-12-31'))

    • Marcado como Resposta Ronnie Von segunda-feira, 21 de março de 2011 19:17
    segunda-feira, 21 de março de 2011 15:32
  • Rafael, meu muito Obrgado me ajudou muito.. valeu

    • Marcado como Resposta Ronnie Von segunda-feira, 21 de março de 2011 19:16
    segunda-feira, 21 de março de 2011 19:16