Consulta - somar valores de uma coluna e exibir maior valor
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.
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
Curtidas 0
Respostas
Joel Rodrigues
09/07/2013
Qual erro dá quando você insere o CPF na consulta acima?
GOSTEI 0
Lidimon Cristiano
09/07/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
select top 1 a.cfp, (select max(sum(preco)) from negocios where a.cpf = cpf)
from negocios a
GOSTEI 0
Simone Grandini
09/07/2013
A mensagem de erro que dá quando acrescento o cpf no select é esta:
"not a single-group group function"
"not a single-group group function"
GOSTEI 0
Alex Lekao
09/07/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
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
GOSTEI 0
Fernando Vilhena
09/07/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.
select top 1 cpf, sum(preco) preco from negocios group by cpf order by SUM(preco) desc
GOSTEI 0
Ricardo Araujo
09/07/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
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
GOSTEI 0
Gabriel Simas
09/07/2013
Olá Simone,
Você pode executar a seguinte query:
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.
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.
GOSTEI 0