Erro com soma via SQL

14/07/2004

0

procedure TFrm_Movimentacao.SpeedButton2Click(Sender: TObject); Var Soma : Real; SQL : String; begin DataModule2.Qry_Entrega.Active := False; DataModule2.Qry_Entrega.SQL.Clear; Sql := ´SELECT * FROM ENTREGA, Movimentacao´; Sql := sql + ´ where Movimentacao.NrLancamento = Entrega.NrLancamento´; DataModule2.Qry_Entrega.SQL.Add(SQL); DataModule2.Qry_Entrega.Active := True; DataModule2.Qry_Entrega.First; Soma := 0; while not DataModule2.Qry_Entrega.Eof do begin Soma := Soma + DataModule2.Qry_EntregaValorNF.Value; DataModule2.Qry_Entrega.Next end; Edit4.Text := ´R$ ´+FormatFloat(´#,,0.00´, Soma); end;


tenho essa procedure que soma valores de uma tabela onde existe o mesmo código em outra, mas na query onde eu faço a filtragem não está funcionando, ou seja, está somando todos os valores desse campo dessa tabela entrega.....Onde eu estou errando?


Facc

Facc

Responder

Posts

15/07/2004

Djjunior

antes de dar o active := true feche a tua tabela (active := false ou close)
se a query já estava aberta antes de vc dar o active true o sistema simplesmente não faz nada (vc não muda algo para algo igual :wink: )


Responder

15/07/2004

Rômulo Barros

antes de dar o active := true feche a tua tabela (active := false ou close) se a query já estava aberta antes de vc dar o active true o sistema simplesmente não faz nada (vc não muda algo para algo igual :wink: )


DataModule2.Qry_Entrega.Active := False;



+++++++++++++++++++++++++++++++++++++++++++++

Tente assim:

procedure TFrm_Movimentacao.SpeedButton2Click(Sender: TObject); 
Var 
Soma : Real; 
SQL : String; 
begin 
DataModule2.Qry_Entrega.Active := False; 
DataModule2.Qry_Entrega.SQL.Clear; 
Sql := ´Select Sum(E.ValorNf) From Entrega E,Movimentacao M ´;
Sql := sql + ´ where M.NrLancamento = E.NrLancamento´; 
DataModule2.Qry_Entrega.SQL.Add(SQL); 
DataModule2.Qry_Entrega.Active := True; 
Soma := DataModule2.Qry_Entrega.Fields[0].AsFloat;
Edit4.Text := ´R$ ´+FormatFloat(´#,,0.00´, Soma); 
end;



Responder

15/07/2004

Emerson Nascimento

eu não sei se entendi direito, mas acho que está faltando condições nesse ´where´.
do jeito que está a instrução, as tabelas estão sendo relacionadas pelo campo NrLancamento, mas estão sendo trazidos TODOS OS REGISTROS. não será aí o erro?


Responder

15/07/2004

Facc

eu não sei se entendi direito, mas acho que está faltando condições nesse ´where´. do jeito que está a instrução, as tabelas estão sendo relacionadas pelo campo NrLancamento, mas estão sendo trazidos TODOS OS REGISTROS. não será aí o erro?


Mas tem a condição Where na expressão SQL.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar