none
UNION ALL RRS feed

  • Pergunta

  • Bom dia !

    Amigos estou fazendo um UNION ALL, porem o mesmo nao esta ficando na mesma linha, aonde posso esta errando esse processo.

    SQL 

    SELECT
    (ITENS.DEBITO)  AS DEBITO,
    (ITENS.CREDITO) AS CREDITO
    FROM
    (
    /* DEBITO */
    SELECT 


    PEVENTO.CONTADEBITO AS DEBITO,
    ''                 AS CREDITO

     FROM PEVENTO  
     INNER JOIN PCONTAS AS A ON
     A.CODCOLIGADA=PEVENTO.CODCOLIGADA
     AND A.GRPCONTA=PEVENTO.CONTADEBITO

    WHERE PEVENTO.CODCOLIGADA = '9'

    AND CODIGO = '0001'
    AND CODINTEGR = '01'


    UNION ALL

    /* CREDITO*/
    SELECT 
    ''                  AS CREDITO,
    PEVENTO.CONTACREDITO AS DEBITO
     FROM PEVENTO  
     INNER JOIN PCONTAS AS A ON
     A.CODCOLIGADA=PEVENTO.CODCOLIGADA
     AND A.GRPCONTA=PEVENTO.CONTADEBITO

    WHERE PEVENTO.CODCOLIGADA = '9'

    AND CODIGO = '0001'
    AND CODINTEGR = '02'

    )
    ITENS(DEBITO,CREDITO)
    GROUP BY
        ITENS.DEBITO,
        ITENS.CREDITO

    Resultado

    Debito                 Credito

    3101040201

                           2101030202

    Resultado Esperado

    Debito                        Credito

    3101040201             2101030202

    Estou usando o '' porem se eu coloco 0 elel me retorna erro Abaixo:

     

    Msg 248, Level 16, State 1, Line 1
    The conversion of the varchar value '3101040201' overflowed an int column.

    Obrigado a todos pela ajuda.

    sexta-feira, 16 de setembro de 2016 12:30

Respostas

  • José,

    Analisando o seu comentário também senti esta falta, sabendo que toda conta de crédito deve possuir sempre uma conta de débito.

    Talvez o Ronnie Von preciso apresentar toda estrutura que ele esta trabalhando para que possamos fazer esta ligação e conseguir realizar os devidos agrupamentos e posteriormente os cálculos.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de setembro de 2016 20:37
    sexta-feira, 16 de setembro de 2016 15:54
  • Bom dia,

    Só existe uma linha para débito e uma para credito?

    Ou podem existir várias linhas? Se podem existir várias, qual linha deve ficar com qual? Qual é o critério?

    Pelo que você disse não é o caso de utilizar o Union ou Union All, pois com eles as linhas vão ficar separadas mesmo.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de setembro de 2016 12:40
    sexta-feira, 16 de setembro de 2016 12:39
  • Não sei se você já resolveu, mas segue uma sugestão para teste:

    SELECT 
        max(case when CODINTEGR = '01' then PEVENTO.CONTACREDITO end) AS CREDITO,
        max(case when CODINTEGR = '02' then PEVENTO.CONTACREDITO end) AS DEBITO
    FROM PEVENTO  
    INNER JOIN PCONTAS AS A 
        ON
            A.CODCOLIGADA = PEVENTO.CODCOLIGADA AND 
            A.GRPCONTA = PEVENTO.CONTADEBITO
    WHERE 
        PEVENTO.CODCOLIGADA = '9' AND 
        CODIGO = '0001'

    Espero que seja útil


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de setembro de 2016 20:37
    sexta-feira, 16 de setembro de 2016 13:21
  • Usei esse ideia e conseguimos fazer.

    Muito Obrigado Amigos pela ajuda.

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de setembro de 2016 20:38
    sexta-feira, 16 de setembro de 2016 20:38

Todas as Respostas

  • Bom dia,

    Só existe uma linha para débito e uma para credito?

    Ou podem existir várias linhas? Se podem existir várias, qual linha deve ficar com qual? Qual é o critério?

    Pelo que você disse não é o caso de utilizar o Union ou Union All, pois com eles as linhas vão ficar separadas mesmo.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de setembro de 2016 12:40
    sexta-feira, 16 de setembro de 2016 12:39
  • Ola!

    Somente vai existir uma linha para Credito e outra para Debito. 

    obrigado 

    sexta-feira, 16 de setembro de 2016 12:41
  • Não sei se você já resolveu, mas segue uma sugestão para teste:

    SELECT 
        max(case when CODINTEGR = '01' then PEVENTO.CONTACREDITO end) AS CREDITO,
        max(case when CODINTEGR = '02' then PEVENTO.CONTACREDITO end) AS DEBITO
    FROM PEVENTO  
    INNER JOIN PCONTAS AS A 
        ON
            A.CODCOLIGADA = PEVENTO.CODCOLIGADA AND 
            A.GRPCONTA = PEVENTO.CONTADEBITO
    WHERE 
        PEVENTO.CODCOLIGADA = '9' AND 
        CODIGO = '0001'

    Espero que seja útil


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de setembro de 2016 20:37
    sexta-feira, 16 de setembro de 2016 13:21
  • Deleted
    sexta-feira, 16 de setembro de 2016 14:04
  • José,

    Analisando o seu comentário também senti esta falta, sabendo que toda conta de crédito deve possuir sempre uma conta de débito.

    Talvez o Ronnie Von preciso apresentar toda estrutura que ele esta trabalhando para que possamos fazer esta ligação e conseguir realizar os devidos agrupamentos e posteriormente os cálculos.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de setembro de 2016 20:37
    sexta-feira, 16 de setembro de 2016 15:54
  • Usei esse ideia e conseguimos fazer.

    Muito Obrigado Amigos pela ajuda.

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de setembro de 2016 20:38
    sexta-feira, 16 de setembro de 2016 20:38
  • Deleted
    sábado, 17 de setembro de 2016 16:04