Fórum Agrupar consulta no SQL #586863

18/10/2017

0

Bom dia pessoal, estou tentando gerar um relatório e desenvolvi a seguinte consulta:

SELECT PRO.MARCA,REG.NOMEREG,
ROUND(ITE.QTDNEG * VLRUNIT,2)AS "VALOR TOTAL"

FROM TGFITE ITE, TGFPRO PRO, TGFCAB CAB,TGFPAR PAR,TGFVEN VEN,TSIREG REG

WHERE ITE.CODPROD = PRO.CODPROD
AND REG.CODREG = VEN.CODREG
AND CAB.CODVEND = VEN.CODVEND
AND ITE.NUNOTA = CAB.NUNOTA
AND CAB.CODEMP = 1
AND CAB.CODTIPOPER IN (310,311)
AND CAB.DTNEG BETWEEN '17/10/2017' AND '18/10/2017'
AND PRO.MARCA = 'PETROBRAS'
AND REG.CODREG = 1005
GROUP BY PRO.MARCA,QTDNEG,VLRUNIT,REG.NOMEREG
ORDER BY MARCA

O resultado retornado é o seguinte:

1 PETROBRAS 5 JOAO APOLINARIO 863,3
2 PETROBRAS 5 JOAO APOLINARIO 217,75
3 PETROBRAS 5 JOAO APOLINARIO 213,05
4 PETROBRAS 5 JOAO APOLINARIO 837,45
5 PETROBRAS 5 JOAO APOLINARIO 468,21
6 PETROBRAS 5 JOAO APOLINARIO 147,93
7 PETROBRAS 5 JOAO APOLINARIO 794,8

Eu preciso que retorne apenas uma linha com o valor total da venda por MARCA/REGIÃO/VALOR, alguém pode me ajudar?
Bruno Santos

Bruno Santos

Responder

Posts

18/10/2017

Luiz Santos

Bom dia Lubrilages.

Já tentou colocar um SUM na frente do ROUND?

SUM(ROUND(ITE.QTDNEG * VLRUNIT,2)) AS "VALOR TOTAL"


Minha duvida fica por conta dos números na frente.

Estou supondo que são os números de linha, que o SQL Retorna.

Grande abraço
Responder

Gostei + 0

18/10/2017

Bruno Santos

Boa tarde, sim os números da frente são as linhas do SQL. Referente ao SUM se eu usar aparece um valor muito alto que não sei de onde realmente vem, em fim mudei a consulta e não resolveu, continua como antes.
--------------------------------------------------------------------------
CONSULTA:
-------------------------------------------------------------------------
SELECT PRO.MARCA,REG.NOMEREG,
(ROUND(ITE.QTDNEG * VLRUNIT,2)) AS "VALOR TOTAL"
FROM TGFITE ITE, TGFPRO PRO, TGFCAB CAB,TGFVEN VEN,TSIREG REG
WHERE ITE.CODPROD = PRO.CODPROD
AND REG.CODREG = VEN.CODREG
AND CAB.CODVEND = VEN.CODVEND
AND ITE.NUNOTA = CAB.NUNOTA
AND CAB.CODEMP = 1
AND CAB.CODTIPOPER IN (310,311)
AND CAB.DTNEG = '17/10/2017'
AND PRO.MARCA = 'PETROBRAS'
AND REG.CODREG = 1005
GROUP BY PRO.MARCA,QTDNEG,VLRUNIT,REG.NOMEREG
ORDER BY MARCA
--------------------------------------------------------------------------------------
RESULTADO
-------------------------------------------------------------------------------------
MARCA NOMEREG VALOR TOTAL
---------- -------------------- -----------
PETROBRAS 5 JOAO APOLINARIO 863,3
PETROBRAS 5 JOAO APOLINARIO 217,75
PETROBRAS 5 JOAO APOLINARIO 213,05
PETROBRAS 5 JOAO APOLINARIO 837,45
PETROBRAS 5 JOAO APOLINARIO 468,21
PETROBRAS 5 JOAO APOLINARIO 147,93
PETROBRAS 5 JOAO APOLINARIO 794,8


AGUARDO...
Responder

Gostei + 0

18/10/2017

Luiz Santos

Lubrilages

Faremos diferente então.
Do jeito que te passei, ele faria o calculo e depois somaria.

Vamos fazer o contratio, vamos somar e depois fazer o calculo.

(ROUND(SUM(ITE.QTDNEG) * SUM(VLRUNIT),2)) AS "VALOR TOTAL"
Responder

Gostei + 0

18/10/2017

Bruno Santos

Isso mesmo, fiz desse jeito e deu certo, muito obrigado pela ajuda...Era isso mesmo que eu queria...
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar