boa noite
qual a melhor rotina para fazer a soma de um determinado campo em um DBF
Obrigado
somando
Moderador: Moderadores
-
PITERGALDIANO
- Usuário Nível 2

- Mensagens: 91
- Registrado em: 28 Nov 2003 08:48
Para somar um determinado campo com melhor desempenho, vc tem que criar um chave para esse campo EX.
ok
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
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
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
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
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
