Página 1 de 1

somando

Enviado: 02 Abr 2006 19:02
por PITERGALDIANO
boa noite

qual a melhor rotina para fazer a soma de um determinado campo em um DBF

Obrigado

Enviado: 02 Abr 2006 19:55
por evaldo
Para somar um determinado campo com melhor desempenho, vc tem que criar um chave para esse campo EX.

Código: Selecionar todos

INDEX ON DTOS(DATA) TO PEDIDO

@ 10,10 SAY "Informe a Data : " GET vData PICTURE "@D"
READ
//
SELECT Pedido
SET ORDE TO 1
Pedido->(DbSeek(DTOS(vData)))
//
nTotal := 0
DO WHILE !EOF() .AND. DTOS(Pedido->data) == DTOS(vData)
     nTotal += Pedido->valor
     SKIP
ENDDO
ok

Enviado: 03 Abr 2006 10:46
por alaminojunior
Voce tambem pode (caso esteja usando Clipper 5.3) usar o comando Set Scope To
Detalhe: O indice em questão tem de ser o critério do que se quer somar, por exemplo:

use contas_correntes shar new
index on codigo tag clientes to indc_c

Set Scope to codigo // abrange somente contas ref aquele codigo
valor:= 0
do while !eof()
valor = valor+c_c
enddo

Não se esqueça de emitir um Set Scope To depois, para voltar a abranger todo o dbf