Vários loops numa tabela
Pessoal, boa tarde.
Estou com um probleminha que ainda não consegui solucionar. É o seguinte:
Tenho uma tabela chamada Quantidades, nela só existe um campo QUANTIDADE, digamos que ela estivesse
alimentada da seguinte forma:
QUANTIDADE
810
810
810
810
720
720
720
645
645
O lance é que seria feito um primeiro loop somando as medidas até chegar no limite de 2000, no caso acima a soma dos tres primeiros registros daria 1.620, qualquer outro registro somado ultrapassaria os 2000, entao a rotina excluiria esses tres primeiros registros, e recomeçaria o loop ate chegar novamente perto dos 2000, até que se acabem os registros da tabela. Como fazer essa sequencia de loops é que eu não consegui ainda efetuar. Qualquer ajuda será bem vinda.
Estou com um probleminha que ainda não consegui solucionar. É o seguinte:
Tenho uma tabela chamada Quantidades, nela só existe um campo QUANTIDADE, digamos que ela estivesse
alimentada da seguinte forma:
QUANTIDADE
810
810
810
810
720
720
720
645
645
O lance é que seria feito um primeiro loop somando as medidas até chegar no limite de 2000, no caso acima a soma dos tres primeiros registros daria 1.620, qualquer outro registro somado ultrapassaria os 2000, entao a rotina excluiria esses tres primeiros registros, e recomeçaria o loop ate chegar novamente perto dos 2000, até que se acabem os registros da tabela. Como fazer essa sequencia de loops é que eu não consegui ainda efetuar. Qualquer ajuda será bem vinda.
Luis Neto
Curtidas 0
Respostas
Luis Neto
15/04/2011
Corrigindo a questão, os dois primeiros registros é que totalizam 1620, e não os três primeiros.
GOSTEI 0
Rene Weberich
15/04/2011
Boa noite Luis.
Execute uma consulta, listando os registros dessa tabela. Logo apos, usa um WHILE para percorrer todos os registros e assim voce podera manipular de acordo com a sua necessidade. Ex.:
....
var
i : Integer; j: Integer;
begin
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM QUANTIDADE');
Query1.Open; while not Query1.Eof do
begin i := 0;
While i <= 2000 do
begin
i := i + Query1.FieldByName('VALOR').Value; end; //Aqui vc podera usar a variavel "i" como for necessario; Query1.Next; end; end; ... Espero te-lo ajudado.
....
var
i : Integer; j: Integer;
begin
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM QUANTIDADE');
Query1.Open; while not Query1.Eof do
begin i := 0;
While i <= 2000 do
begin
i := i + Query1.FieldByName('VALOR').Value; end; //Aqui vc podera usar a variavel "i" como for necessario; Query1.Next; end; end; ... Espero te-lo ajudado.
GOSTEI 0
Luis Neto
15/04/2011
Beleza, Vou tentar. Mas pra que voce criou a variável J?
GOSTEI 0
Rene Weberich
15/04/2011
Bom dia.
De fato, nao é necessaria, segue abaixo correcao:
....
var
i : Integer;
begin
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM QUANTIDADE');
Query1.Open;
while not Query1.Eof do
begin
i := 0;
While i <= 2000 do
begin
i := i + Query1.FieldByName('VALOR').Value;
Query1.Next;
end;
//Aqui vc podera usar a variavel "i" como for necessario;
end;
end;
... Abraco.
var
i : Integer;
begin
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM QUANTIDADE');
Query1.Open;
while not Query1.Eof do
begin
i := 0;
While i <= 2000 do
begin
i := i + Query1.FieldByName('VALOR').Value;
Query1.Next;
end;
//Aqui vc podera usar a variavel "i" como for necessario;
end;
end;
... Abraco.
GOSTEI 0