Datas e Valores

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Datas e Valores

Mensagem por Paulo_CPV »

Bom dia!
Amigos do fórum, estou com uma dúvida é gostaria que vocês me pudessem me ajudar tenho um banco de dados .DBF que armazeno datas e valores. Gostaria de quando fizer a pesquisa fizesse a soma dos valores referentes as datas.
Exemplo:

Campo1 Campo2
11/12/2019 200,00 -> Aqui esta dando certo
12/12/2019 350,50
12/12/2019 100,00
12/12/2019 100,00 -> Aqui que eu não estou conseguindo resolver

Abraços,
Paulo - Caraguatatuba/SP
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Datas e Valores

Mensagem por Nascimento »

ja tentou dessa forma?

Código: Selecionar todos

Procedure Main()
local ntot := 0
local datadapesquisa := Date()
use minhabase
goto top
seek datadapesquisa // caso seja indexado por data
do while !eof()
   if datadapesquisa ==  minhabase->database 
      ntot += minhabase->campo valor
   endif
  skip
end do

wait ' O Valor Total foi " + Str(nTot)


em fim não cheguei a testar mais acho que deve ser isso que vc precisa
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Datas e Valores

Mensagem por JoséQuintas »

Assim vai ficar demorado, não está filtrando nada

Indexado por Dtos( data )

Opção A: registro a registro, só na data

Código: Selecionar todos

SEEK Dtos( data )
nTotal := 0
DO WHLE Data == dData .AND. ! Eof()
   nTotal += valor
   SKIP
ENDDO
Opção B: idem mas com SCOPE

Código: Selecionar todos

SET SCOPE TO Dtos(dData)
GOTO TOP
nTotal := 0
DO WHLE ! Eof()
   nTotal += Valor
   SKIP
ENDDO
Opção C: SUM só na data

Código: Selecionar todos

SEEK Dtos( dData )
SUM VALOR TO nTotal WHILE data = dData
Opção D: SUM com SCOPE

Código: Selecionar todos

SET SCOPE TO Dtos( dData )
GOTO TOP
SUM Valor TO nTotal
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Datas e Valores

Mensagem por Nascimento »

verdade nobre Quintas eu fiz um pouco rapido não observei de dar um exit caso mude a data para a que foi configurada rsrs , erro de principiante rsrs
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Responder