SELECT COMPRADORES.NOME, SUM(VALOR)
FROM COMPRAS INNER JOIN COMPRADORES ON COMPRAS.COMPRADOR_ID = COMPRADORES.ID
GROUP BY COMPRADORES.NOME
SELECT COMPRADORES.NOME, SUM(VALOR)
FROM COMPRAS INNER JOIN COMPRADORES ON COMPRAS.COMPRADOR_ID = COMPRADORES.ID
GROUP BY COMPRADORES.NOME
Bom dia,
Quando usamos o SQL e fazemos um SQL da forma abaixo:
Select * from Compradores
Nos queremos retornar todos os campos que tem na tabela Compradores, porém se eu quiser retornar apenas o nome do Comprador
Usaria Select Nome from compradores.
Agora no seu caso o seu select está usando dados de duas tabelas, e provavelmente o campo Nome existe nas duas, desta forma como o SQL saberia qual Nome ele deveria retornar?
Por este motivo é necessário que você coloque o Nome da Tabela e o Nome do Campo. Ficando como acima Select Compradores.Nome...
O Group By é utilizado para agrupo os dados, neste caso você precisa saber o valor total comprado pelo comprador.
Vamos supor que você tem os seguintes dados.
Compra Comprador Valor 1 João 100,00 2 Pedro 200,00 3 João 50,00 4 Pedro 30,00
Desta forma para trazer agrupado por Comprador Usamos o Group By Comprador.Nome
Porém para que some todas as compras usamos o SUM(Valor) assim o resultado será
João 150,00 Pedro 230,00
Expliquei sem colocar conceitos para facilitar o entendimento.
Um grande abraço.