Array
(
)

Consulta - somar valores de uma coluna e exibir maior valor

Simone Grandini
   - 09 jul 2013

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.

Joel Rodrigues
   - 09 jul 2013

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

Lidimon Cristiano
   - 10 jul 2013

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

Simone Grandini
   - 10 jul 2013

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

"not a single-group group function"

Alex Lekao
   - 15 jul 2013

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

Fernando Vilhena
|
MVP
Pontos: 20
    15 jul 2013

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.

#Código

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

Rbbarreto
   - 15 jul 2013

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

Gabrielsimas
   - 20 jul 2013

Olá Simone,

Você pode executar a seguinte query:

#Código

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.