Fórum Vários loops numa tabela #399288

15/04/2011

0

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.



Luis Neto

Luis Neto

Responder

Posts

15/04/2011

Luis Neto

Corrigindo a questão, os dois primeiros registros é que totalizam 1620, e não os três primeiros. 
Responder

Gostei + 0

15/04/2011

Rene Weberich

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.
Responder

Gostei + 0

15/04/2011

Luis Neto

Beleza, Vou tentar. Mas pra que voce criou a variável J? 
Responder

Gostei + 0

16/04/2011

Rene Weberich

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.
Responder

Gostei + 0

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

Aceitar