none
Soma das colunas com valores divergentes RRS feed

  • Pergunta

  • Estou com dificuldade em retornar com a soma de uma coluna, o que retorna é a soma total desta coluna, segue abaixo minha consulta;

    SELECT DISTINCT
     T2.[TaxId4] as CPF,
     T1.Price as ValorTotal,
     (select sum(t1.Price) from inv1 t1) as 'Total Itens',
     T0.[DocDate] As dataVenda ,
     T1.[Dscription] as Descricao,
     T1.[ItemCode] as codigoItem,
     T1.[Quantity] as Quantidade, 
     T0.[Serial] as NotaFiscal

    FROM OINV T0 
    INNER JOIN INV1 T1
    ON
    T0.[DocEntry] = T1.[DocEntry]
    INNER JOIN CRD7 T2 
    on
    T2.CardCode = T0.CardCode
    where T0.CANCELED = 'N'
    and T2.TaxId4 != ''
         --and T0.[Serial] = '28353'
    and t0.DocDate = '2016-12-27'

    RESULTADO DA CONSULTA 

    CPF                          Valor         Valor Total (SUM)    Data              Descrição          Código   Quantidade   NF

    001.007.997-10 29,90 7.559.285,93       2016-12-27  GESSO PEDRA   013857  1             21081
    128.361.252-68 45,70 7.559.285,93         2016-12-27  HYDROGUM 5    034071  1          21077
    290.292.441-00 69,90 7.559.285,93       2016-12-27  ALLCEM CORE   034331  1             21053
    344.063.602-04 4,45         7.559.285,93         2016-12-27  BICARBONATO   035556  2                 21063

    O Valor de retorno no campo Valor Total desse dia é (149,95), não 7 milhões.

    quarta-feira, 28 de dezembro de 2016 14:56

Respostas

  • a Coluna 

    [Total Itens] e o total de que ? se for :

    total de itens vendido por dia :[Total Itens] =SUM(T1.Price) OVER(PARTITION BY T0.DocDate),

    total de itens vendido por dia e por CPF :[Total Itens] =SUM(T1.Price) OVER(PARTITION BY T0.DocDate,T2.[TaxId4])


    Wesley Neves



    • Editado Wesley Neves quarta-feira, 28 de dezembro de 2016 15:52 correção
    • Marcado como Resposta Robson William Silva sexta-feira, 30 de dezembro de 2016 10:59
    quarta-feira, 28 de dezembro de 2016 15:43

Todas as Respostas

  • Seu critério 

     (select sum(t1.Price) from inv1 t1) as 'Total Itens',

    está errado , ele esta somando todos os valores da tabela,

    se vc quer saber o total por data  

    Acredito que assim funcione

    SELECT DISTINCT
            T2.[TaxId4] AS CPF ,
            T1.Price AS ValorTotal ,
    		[Total Itens] =SUM(T1.Price) OVER(PARTITION BY T0.DocDate ),
            
            T0.[DocDate] AS dataVenda ,
            T1.[Dscription] AS Descricao ,
            T1.[ItemCode] AS codigoItem ,
            T1.[Quantity] AS Quantidade ,
            T0.[Serial] AS NotaFiscal
    FROM    OINV T0
            INNER JOIN INV1 T1
            ON T0.[DocEntry] = T1.[DocEntry]
            INNER JOIN CRD7 T2
            ON T2.CardCode = T0.CardCode
    WHERE   T0.CANCELED = 'N'
            AND T2.TaxId4 != ''
         --and T0.[Serial] = '28353'
            AND T0.DocDate = '2016-12-27';


    Wesley Neves

    quarta-feira, 28 de dezembro de 2016 15:20
  • Wesley, obrigado pelo retorno

    adicionei a na consulta o valor que retornou foi 9.337,06 e o total da coluna referente esse dia é 4.647,57.

    CPF ValorTotal Total Itens dataVenda Descricao codigoItem Quantidade NotaFiscal
    000.671.592-30 2,1000 9.337,06 27/12/2016 ROLETE ALGODAO DENTAL SOFT PLUS C/100 - SOFT PLUS 025257 4,0000 21064
    000.671.592-30 4,4900 9.337,06 27/12/2016 FLUOR GEL 200ML ACIDULADO CEREJA- MAQUIRA 030876 2,0000 21064


    quarta-feira, 28 de dezembro de 2016 15:31
  • a Coluna 

    [Total Itens] e o total de que ? se for :

    total de itens vendido por dia :[Total Itens] =SUM(T1.Price) OVER(PARTITION BY T0.DocDate),

    total de itens vendido por dia e por CPF :[Total Itens] =SUM(T1.Price) OVER(PARTITION BY T0.DocDate,T2.[TaxId4])


    Wesley Neves



    • Editado Wesley Neves quarta-feira, 28 de dezembro de 2016 15:52 correção
    • Marcado como Resposta Robson William Silva sexta-feira, 30 de dezembro de 2016 10:59
    quarta-feira, 28 de dezembro de 2016 15:43
  • Deleted
    quarta-feira, 28 de dezembro de 2016 17:31
  • Bom dia,

    Devido a falta de interação do autor dessa pergunta,

    essa thread está sendo fechada. Caso o problema ainda

    esteja ocorrendo, favor abrir uma nova thread.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 30 de dezembro de 2016 10:59
  • a coluna [Total Itens] é a soma da coluna [Valor Total] referente ao dia ou mês, ele esta retornando a soma geral da minha coluna desde o inicio do ano.
    sexta-feira, 30 de dezembro de 2016 18:32
  • Boa tarde,

    Acho que seria melhor verificar como é o relacionamento entre as tabelas (1:1, 1:N, etc) e se o Distinct é mesmo necessário, mas experimente fazer uns testes dessa forma:

    with CTE_Base as
    (
        SELECT DISTINCT
            T2.[TaxId4] as CPF,
            T1.Price as ValorTotal,
            T0.[DocDate] As dataVenda ,
            T1.[Dscription] as Descricao,
            T1.[ItemCode] as codigoItem,
            T1.[Quantity] as Quantidade, 
            T0.[Serial] as NotaFiscal
        FROM OINV T0 
        INNER JOIN INV1 T1
            ON
                T0.[DocEntry] = T1.[DocEntry]
        INNER JOIN CRD7 T2 
            on
                T2.CardCode = T0.CardCode
        where 
            T0.CANCELED = 'N' and 
            T2.TaxId4 != '' and 
            -- T0.[Serial] = '28353' and 
            t0.DocDate = '2016-12-27'
    )
    
    select
        *,
        sum(ValorTotal) over(partition by dataVenda) as TotalItens
    from CTE_Base

    Espero que ajude


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

    sexta-feira, 30 de dezembro de 2016 19:12