PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Consulta SQL e somar valores #483165

20/06/2014

0

Então preciso fazer uma consulta em SQL e retornar a soma de valores. o que eu quero é o seguinte:

Pesquisar entre um intervalo de datas todas as compras que todos os clientes realizaram, retornar o nome de cada cliente e os dados de cada compra junto com os respectivos valores e somar o valor de todas as compras realizadas neste período. Por fim eu quero enviar essa consulta para um relatório no Quickreport.

Acontece que no relatório ele faz quase tudo certo, separa os clientes, faz a soma do valor total, exceto pelo fato de só mostrar uma compra para cada cliente, a principio parece que é a última realizada.

ex:
cliente 1 tem, apenas uma compra no valor de R$ 100,00, total de todas as compras R$100,00.
cliente 2 tem cinco compras cada uma custa de R$25,00, total de todas compras R$125,00.

Só que no relatório sai sempre assim:

cliente 1
compra valor 100,00 total 100,00

cliente 2
compra valor 25,00 total 125,00

entenderam? só mostra um compra para cada cliente sendo que o cliente 2 deveria estar assim:

cliente 2
compra valor 25,00 total 125,00
compra valor 25,00
compra valor 25,00
compra valor 25,00
compra valor 25,00


Vale lembra que já fiz todos os testes e fiz outros relatórios porém individuais para cada cliente e esta tudo funcionando, ou seja, as configurações do Quickreport estão ok o problema eu já comprovei que é na forma como estou realizando a consulta mas não sei como resolver. Se alguém puder me ajudar.

Estou usando o seguinte código:

Close;
SQL.Clear;
sql.add('select compras.*, SUM(compras.valor) as soma, clientes.* from compras, clientes where compras.id_cliente = clientes.id_cliente');
sql.Add('and data_venda >= :pdataini and data_venda <= :pdatafim');
sql.Add('group by nome');
params.ParamByName('pdataini').Value := dataini;
Params.ParamByName('pdatafim').Value := datafim;
Open;
Pedro

Pedro

Responder

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

Aceitar