Erro com soma via SQL
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
Curtidas 0
Respostas
Djjunior
14/07/2004
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: )
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: )
GOSTEI 0
Rômulo Barros
14/07/2004
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;
GOSTEI 0
Emerson Nascimento
14/07/2004
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?
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?
GOSTEI 0
Facc
14/07/2004
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.
GOSTEI 0