[RESOLVIDO] For each dos Últimos 5 registros

Discussão em 'EMS , HCM e Totvs 11' iniciado por magidigor, Junho 3, 2014.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. magidigor

    magidigor Membro Participativo

    Pessoal, alguém sabe me dizer como fazer um "for each" que traga os últimos 5 registros de uma consulta.

    sei que em alguns bancos de dados é possível fazer da seguinte forma
    >>> Select top 5 * from <tabela> order by desc.


    Desde já agradeço.
  2. valdir_fantin

    valdir_fantin Membro Participativo

    Caro, @magidigor segue um exemplo:

    def var i-cont as int init 1.
    for each emitente no-lock by emitente.cod-emitente desc:
    if i-cont > 5 then leave.
    disp emitente.cod-emitente
    emitente.nome-abrev.
    i-cont = i-cont + 1.
    end.

    Espero que te ajude,
    Abraços
  3. jaisonantoniazzi

    jaisonantoniazzi Membro Ativo

    Pessoal, vocês podem adicionar ao cabeçalho do FOR EACH o contador, e não precisa então se preocupar em acumular, if then leave.

    DEFINE VARIABLE contador AS INTEGER NO-UNDO.

    FOR EACH customer
    BY customer.custnum DESC
    contador = 1 TO 5:
    DISP customer.custnum customer.NAME.
    END.

    Abraço.
    don.junior curtiu isso.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página