Consulta - somar valores de uma coluna e exibir maior valor

09/07/2013

0

Olá pessoal!

Preciso exibir numa consulta os campos cpf e preço da tabela que criei chamada Negocios. Acontece que um mesmo cpf pode ter vários preços associados e por isso, tenho que somá-los antes de exibir aquele que possui o valor de soma maior. Por exemplo:

CPF Preço

1234-5 80,00
1234-5 50,00
5432-1 110,00
2345-0 90,00
2345-0 10,00

Neste caso, somente o CPF 1234-5 deverá ser exibido, pois o valor total da soma da coluna preço (130,00) é maior do que os demais.

No select que fiz, consegui parte do que eu queria que era somar os valores e exibir o maior. Só que só consigo mostrar o valor total, tenho que exibir também o cpf. Aí que está o problema. Quando acrescento o campo cpf no select, dá erro. Como faço pra corrigir isso? Segue o select:

select max(sum(preco))
from negocios
group by cpf

Obrigada.
Simone Grandini

Simone Grandini

Responder

Posts

09/07/2013

Joel Rodrigues

Qual erro dá quando você insere o CPF na consulta acima?
Responder

10/07/2013

Lidimon Cristiano

Olá faça um sub-select para trazer a soma. Exemplo:

select top 1 a.cfp, (select max(sum(preco)) from negocios where a.cpf = cpf)
from negocios a





Responder

10/07/2013

Simone Grandini

A mensagem de erro que dá quando acrescento o cpf no select é esta:

"not a single-group group function"

Responder

15/07/2013

Alex Lekao

Ola Simone, boa tarde!!!

Nao entendi muito bem o que esta precisando ou querendo fazer...

mas acredito que vc tera que usar o having e no utilizar uma subselect nele que faca a soma e mostre somente o que for maior.

Espero ter ajudado.

Abraco.

Alex - Lekao
Responder

15/07/2013

Fernando Vilhena

A solução do "LIDIMON CRISTIANO" funciona muito bem, mas deixo aqui também meus R$ 0,02 de contribuição. Apenas uma outra forma de fazer.

	select top 1 cpf, sum(preco) preco
	from negocios
	group by cpf
	order by SUM(preco) desc

Responder

15/07/2013

Ricardo Araujo

boa tarde ,


tenta este código:
select top 1 cod, Sum(PRECO)PRECO from ITEM
where cod is not null
group by cod
order by PRECO desc
Responder

20/07/2013

Gabriel Simas

Olá Simone,

Você pode executar a seguinte query:

SELECT CPF,SUM(PRECO) PRECO
FROM NEGOCIOS
GROUP BY CPF
ORDER BY PRECO


que lhe trará o seguinte resultado, de acordo com os dados gravados que você postou:

CPF PRECO
23450 100
54321 110
12345 130

Forte Abraço e no que você precisar, pode recorrer a este forum que lhe ajudaremos.

Gabriel Simas.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar