Ir ao conteúdo
  • Cadastre-se
mm_edilson

Soma de Dados - Onde está o erro?

Recommended Posts

Pessoal, recorro mais uma vez a vocês.

 
Meu projeto é em Delphi 10 usa BD access.
 
preciso somar os valores do campo "Valor" da tabela "Detalhe_Entrada", do mês corrente.
 
Fiz assim:
 
DateTimePicker2.Date := StartOfTheMonth(Date());DateTimePicker3.Date := EndOfTheMonth(Date());       QueryMes.Close;      QueryMes.SQL.Clear;      QueryMes.SQL.Add('Select Sum(Valor)as SOMA from Detalhe_Entrada WHERE Data >= :DATAINI and Data <=:DATAFIN group by Data');      QueryMes.Parameters.paramByname('DATAINI').Value := DateTimePicker2.Datetime;      QueryMes.Parameters.paramByname('DATAFIN').Value := DateTimePicker3.Datetime;      QueryMes.Open;      Label20.Caption := formatfloat('#,#0.00', QueryMes.fieldbyname('SOMA').ASCURRENCY);
 
Só que o danado só soma os valores do primeiro dia do mês e ignora o restante. Não sei mais o que fazer. Alguém pode dar uma luz?
Abraços.
 
Tentei usar:
QueryMes.SQL.Add('Select Sum(Valor)as SOMA from Detalhe_Entrada WHERE Data Between :DATAINI and :DATAFIN group by Data');

Mas também não resolveu.
 
Também tentei com essa linha
Label20.caption := formatfloat('#,#0.00', QueryMesSoma2.asfloat);
mas assim não compila. Dá esse erro:
[DCC Error] un_entradas.pas(237): E2003 Undeclared identifier: 'QueryMesSoma2'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra alternativa, é usar um laço While do primeiro até o ultimo registro e somando o valor

 

Exemplo:

var  TOTAL :  Currency;Begin      QueryMes.Close;      QueryMes.SQL.Clear;      QueryMes.SQL.Add('Select * from Detalhe_Entrada WHERE Data >= :DATAINI and Data <=:DATAFIN group by Data');      QueryMes.Parameters.paramByname('DATAINI').Value := DateTimePicker2.Datetime;      QueryMes.Parameters.paramByname('DATAFIN').Value := DateTimePicker3.Datetime;      QueryMes.Open;      TOTAL := 0;     QueryMes.first; // VAI PARA O PRIMEIRO REGISTRO     WHILE NOT   QueryMes.eof do // ENQUANDO NÃO ESTIVER NO ULTIMO     begin      Total := Total + QueryMescaposomar.value;       QueryMes.next;     end;      Label20.Caption := formatfloat('#,#0.00', total);

Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×