Count

Discussão em 'Progress 4GL' iniciado por Demetrius, Julho 20, 2009.

  1. Demetrius

    Demetrius Sem Pontuação

    Fala!!!!
    Gostaria de saber como realizar uma pesquisa em uma tabela e saber o total de registros que atendam a uma determinada regra de pesquisa e jogar para uma variável esse total.
  2. Raviel

    Raviel Sem Pontuação

    Não sei bem o vc quer, mas acho que o jeito mais viável seria colocar uma variável dentro da sua lógica que receba 1 a cada registro, agora se vc só quer saber quantos tem:

    Código:
    def var cont as int no-undo.
    
    for each tabela no-lock where lógica do:
    	assign cont = cont + 1.
    End.
    
    Message cont view-as alert-box. 
    espero ter ajudado.
  3. mcarril

    mcarril Membro Participativo

    Segue informações do meu Manual Progress :
    "Relatórios com Valores Agregados"
    A agregação default são: TOTAL, COUNT, MAXIMUM, MINIMUM e AVERAGE. Estes valores são mostrados à direita do frame e na seguinte ordem: TOTAL,COUNT,MAX,MIN,AVERAGE. SE VOCÊ NÃO QUER OS VALORES À DIREITA DO FRAME É RECOMENDADO UTILIZAR O COMANDO ACCUMULATE.

    Exemplo 1:
    Código:
    for-cust:
    FOR EACH customer NO-LOCK:
       DISPLAY cust-num name contact credit-limite(TOTAL).
    END.
    Exemplo 2:
    Código:
    for-cust:
    FOR EACH customer BY sales-rep NO-LOCK:
       DISPLAY salesrep cust-num (COUNT) name credit-limit (MAX MIN          AVERAGE TOTAL).
    END.
    Exemplo com ACCUMULATE E AVERAGE

    Código:
    do-frame:
    DO WITH DOWN FRAME credit-limit-sum:
    
       for-cust:
       FOR EACH customer WITH FRAME credit-limit-sum NO-LOCK:
           ACCUMULATE credit-limit (TOTAL AVERAGE).
           DISPLAY cust-num name contact 
                        credit-limit FORMAT "$>>>,>>>,>>9".
            DOWN.
       END.
       UNDERLINE customer.cust-num customer.name contact credit-limit. 
       DISPLAY "Average" @ contact
           ACCUM AVERAGE credit-limit @ credit-limit.
       DOWN.  
       DISPLAY "Total" @ contact
          ACCUM TOTAL credit-limit @ credit-limit.
    
    END. /* do frame */
    Espero poder ter te ajudado...
  4. TeD

    TeD Membro Participativo

    buenas,

    Eis mais uma maneira simples para atender o que você precisa.

    Código:
    DEF VAR i-total AS INTEGER.
    
    SELECT COUNT(*) INTO i-total FROM customer WHERE customer.cust-num > 7 AND
                                        customer.cust-num < 30.
    
    DISP i-total.
    
  5. Demetrius

    Demetrius Sem Pontuação

    Obrigado a todos!!!
    Ajudaram muito!!!!

Compartilhe esta Página