none
Consulta Soma das Vendas por Vendedor RRS feed

  • Pergunta

  • Boa Tarde,

    Fiz uma consulta onde na relação necessitaria buscar a soma de vendas de cada vendedor

    SELECT 
    T0.[DocNum] AS 'NumerodoDocumento', 
    T0.[CardCode] AS 'CódigoCliente', 
    T0.[CardName] AS 'NomedoCliente', 
    T1.[LineTotal] AS 'TotalLina', 
    --T1.[GTotal] AS 'ValorTotal', 
    T0.[DocTotal] AS 'TotalDocumento', 
    T0.[Serial] AS 'NúmerodaNF', 
    T2.[PymntGroup] AS 'CondicoesdePagamento', 
    T4.[NfmName] AS 'ModelodaNF', 
    T3.[SlpName] AS 'NomedoVendedor' 

    FROM OINV T0  INNER JOIN INV1 T1 
    ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OCTG T2 
    ON T0.[GroupNum] = T2.[GroupNum] INNER JOIN OSLP T3 
    ON T0.[SlpCode] = T3.[SlpCode] INNER JOIN ONFM T4 
    ON T0.[Model] = T4.[AbsEntry] 

    WHERE T0.[DocDate] >= '2017-02-13'  AND T0.[DocDate] <= '2017-02-17' AND T0.[CANCELED] = 'N'

    ORDER BY T0.[DocNum]



    Abaixo resultado da consulta



    Documento   Cliente   NomeCliente   TotalLinha   NumeroNF   CondicoesPagto   ModeloNF    NomeVendedor

    6683             001      Luiz                 137,50       12366         Mastercard          NFe            Thalita

    6684             002      Maria               180,00       12367         Dinheiro              NFe            Viviane

    6685             003      João                3243,00      12368         Boleto 30 Dias    NFe             Thalita

    6685             003      João                  180,00      12368         Boleto 30 Dias    NFe              Thalita

    6686             004      Paulo                141,80       12369         Visa 1x              NFe              Carlos

    6687             005      Luiz                    50,00       12370         RedeShop          NFe              Viviane

    quarta-feira, 22 de fevereiro de 2017 18:10

Respostas

  • Boa noite,

    Não sei se entendi corretamente o resultado que você quer obter, mas experimente dessa forma:

    SELECT 
    T0.[DocNum] AS 'NumerodoDocumento', 
    T0.[CardCode] AS 'CódigoCliente', 
    T0.[CardName] AS 'NomedoCliente', 
    (select sum(T1.[LineTotal]) from INV1 T1
     where T0.[DocEntry] = T1.[DocEntry]) AS 'TotalLina',  
    --T1.[GTotal] AS 'ValorTotal', 
    T0.[DocTotal] AS 'TotalDocumento', 
    T0.[Serial] AS 'NúmerodaNF', 
    T2.[PymntGroup] AS 'CondicoesdePagamento', 
    T4.[NfmName] AS 'ModelodaNF', 
    T3.[SlpName] AS 'NomedoVendedor'
    
    FROM OINV T0  INNER JOIN OCTG T2 
    ON T0.[GroupNum] = T2.[GroupNum] INNER JOIN OSLP T3 
    ON T0.[SlpCode] = T3.[SlpCode] INNER JOIN ONFM T4 
    ON T0.[Model] = T4.[AbsEntry] 
    
    WHERE T0.[DocDate] >= '2017-02-13'  AND T0.[DocDate] <= '2017-02-17' AND T0.[CANCELED] = 'N'
    
    ORDER BY T0.[DocNum]

    Espero que ajude


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

    quinta-feira, 23 de fevereiro de 2017 00:40
  • Deleted
    sexta-feira, 24 de fevereiro de 2017 11:17

Todas as Respostas

  • Deleted
    quarta-feira, 22 de fevereiro de 2017 18:13
  • O que quer é agrupar as vendas de cada vendedor, para um mesmo documento?

    Exato, é agrupar as vendas de cada vendedor para um mesmo documento.

    SELECT 
    T0.[DocNum] AS 'NumerodoDocumento', 
    T0.[CardCode] AS 'CódigoCliente', 
    T0.[CardName] AS 'NomedoCliente', 
    T1.[LineTotal] AS 'TotalLina',  (Campo da tabela INV1 - Valor) 
    --T1.[GTotal] AS 'ValorTotal', 
    T0.[DocTotal] AS 'TotalDocumento', 
    T0.[Serial] AS 'NúmerodaNF', 
    T2.[PymntGroup] AS 'CondicoesdePagamento', 
    T4.[NfmName] AS 'ModelodaNF', 
    T3.[SlpName] AS 'NomedoVendedor'  (Campo da tabela ONFM - Vendedor)

    FROM OINV T0  INNER JOIN INV1 T1 
    ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OCTG T2 
    ON T0.[GroupNum] = T2.[GroupNum] INNER JOIN OSLP T3 
    ON T0.[SlpCode] = T3.[SlpCode] INNER JOIN ONFM T4 
    ON T0.[Model] = T4.[AbsEntry] 

    WHERE T0.[DocDate] >= '2017-02-13'  AND T0.[DocDate] <= '2017-02-17' AND T0.[CANCELED] = 'N'

    ORDER BY T0.[DocNum]

    quarta-feira, 22 de fevereiro de 2017 21:33
  • Boa noite,

    Não sei se entendi corretamente o resultado que você quer obter, mas experimente dessa forma:

    SELECT 
    T0.[DocNum] AS 'NumerodoDocumento', 
    T0.[CardCode] AS 'CódigoCliente', 
    T0.[CardName] AS 'NomedoCliente', 
    (select sum(T1.[LineTotal]) from INV1 T1
     where T0.[DocEntry] = T1.[DocEntry]) AS 'TotalLina',  
    --T1.[GTotal] AS 'ValorTotal', 
    T0.[DocTotal] AS 'TotalDocumento', 
    T0.[Serial] AS 'NúmerodaNF', 
    T2.[PymntGroup] AS 'CondicoesdePagamento', 
    T4.[NfmName] AS 'ModelodaNF', 
    T3.[SlpName] AS 'NomedoVendedor'
    
    FROM OINV T0  INNER JOIN OCTG T2 
    ON T0.[GroupNum] = T2.[GroupNum] INNER JOIN OSLP T3 
    ON T0.[SlpCode] = T3.[SlpCode] INNER JOIN ONFM T4 
    ON T0.[Model] = T4.[AbsEntry] 
    
    WHERE T0.[DocDate] >= '2017-02-13'  AND T0.[DocDate] <= '2017-02-17' AND T0.[CANCELED] = 'N'
    
    ORDER BY T0.[DocNum]

    Espero que ajude


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

    quinta-feira, 23 de fevereiro de 2017 00:40
  • Deleted
    quinta-feira, 23 de fevereiro de 2017 11:45
  • Um documento pode ter mais de um vendedor?

    Um documento tem apenas um vendedor.

    Um documento pode ter mais de um número de nota fiscal?

    Um documento tem somente uma nota fiscal.

    quinta-feira, 23 de fevereiro de 2017 15:21
  • gapimex, a consulta esta perfeita, tem como criar uma nova coluna e agrupar a soma dos vendedores.

    quinta-feira, 23 de fevereiro de 2017 15:52
  • BUlcão Aproveitando a Query do gapimex acredito que seja isso

    ;WITH Dados AS (
    
    SELECT  T0.[DocNum] AS 'NumerodoDocumento' ,
            T0.[CardCode] AS 'CódigoCliente' ,
            T0.[CardName] AS 'NomedoCliente' ,
            ( SELECT    SUM(T1.[LineTotal])
              FROM      INV1 T1
              WHERE     T0.[DocEntry] = T1.[DocEntry]
            ) AS 'TotalLina' ,  
    --T1.[GTotal] AS 'ValorTotal', 
            T0.[DocTotal] AS 'TotalDocumento' ,
            T0.[Serial] AS 'NúmerodaNF' ,
            T2.[PymntGroup] AS 'CondicoesdePagamento' ,
            T4.[NfmName] AS 'ModelodaNF' ,
            T3.[SlpName] AS 'NomedoVendedor'
    FROM    OINV T0
            INNER JOIN OCTG T2 ON T0.[GroupNum] = T2.[GroupNum]
            INNER JOIN OSLP T3 ON T0.[SlpCode] = T3.[SlpCode]
            INNER JOIN ONFM T4 ON T0.[Model] = T4.[AbsEntry]
    WHERE   T0.[DocDate] >= '2017-02-13'
            AND T0.[DocDate] <= '2017-02-17'
            AND T0.[CANCELED] = 'N'
    		)
    
    		SELECT R.*,
    				[Total por vendedores] = sum(R.TotalLina) OVER(PARTITION BY R.[SlpName] ORDER BY [SlpName]) ,
    				[Total Geral] = sum(R.TotalLina) OVER() 	FROM Dados R
    		ORDER BY R.[DocNum];

    Saudações,,,

    Por favor,  marque-o como respondidas se está respondeu a sua pergunta 
    ou marcá-lo como útil se está ajudou a resolver o seu problema 
    Wesley Neves
    MTA-Database Fundamentals 
    Analista Desenvolvedor.NET


    Wesley Neves


    • Editado Wesley Neves quinta-feira, 23 de fevereiro de 2017 16:37 correção
    quinta-feira, 23 de fevereiro de 2017 16:36
  • Wesley, retornou o seguinte erro

    Mensagem 107, Nível 15, Estado 1, Linha 25
    The column prefix 'R' does not match with a table name or alias name used in the query.
    Mensagem 4104, Nível 16, Estado 1, Linha 26
    The multi-part identifier "R.SlpName" could not be bound.
    Mensagem 207, Nível 16, Estado 1, Linha 26
    Invalid column name 'SlpName'.
    Mensagem 4104, Nível 16, Estado 1, Linha 26
    The multi-part identifier "R.TotalLina" could not be bound.
    Mensagem 4104, Nível 16, Estado 1, Linha 27
    The multi-part identifier "R.TotalLina" could not be bound.
    Mensagem 4104, Nível 16, Estado 1, Linha 28
    The multi-part identifier "R.DocNum" could not be bound.

    quinta-feira, 23 de fevereiro de 2017 22:09
  • Deleted
    sexta-feira, 24 de fevereiro de 2017 11:17