somando

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

PITERGALDIANO
Usuário Nível 2
Usuário Nível 2
Mensagens: 91
Registrado em: 28 Nov 2003 08:48

somando

Mensagem por PITERGALDIANO »

boa noite

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

Obrigado
Piter Galdiano
Programador Clipper
evaldo
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 27 Out 2005 23:29

Mensagem 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
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem 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
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Responder