Usuário com melhor resposta
Consulta Soma das Vendas por Vendedor

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
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
- Marcado como Resposta Robson William Silva segunda-feira, 27 de fevereiro de 2017 13:30
-
Deleted
- Marcado como Resposta Robson William Silva segunda-feira, 27 de fevereiro de 2017 13:30
Todas as Respostas
-
-
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] -
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
- Marcado como Resposta Robson William Silva segunda-feira, 27 de fevereiro de 2017 13:30
-
-
-
-
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
-
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. -
Deleted
- Marcado como Resposta Robson William Silva segunda-feira, 27 de fevereiro de 2017 13:30