Vejamos primeiramente a sintaxe do comando SUM:Em 31 Mar 2014 14:17, por MP, Carvalho escreveu:ola.
Tenho um arquivo com apenas dois campos numa base de dados que se chama Leite.dbf
os campos sao:
Data
Quant
Refere-se ao controle diario de retirada de leite de uma fazenda. Coloca a data do dia, e a quantidade de leite.
Agora preciso criar uma consulta entre duas datas, para saber a quantidade de leite tirada entre essas determinadas datas. ex: quanto foi o acumulado de leite entre os dias 01/02/2014 e 28/02/2014.
Sei que a funcao SUM faz a soma, mas nao sei como filtrar entre duas datas. poderia me dar uma dica ?
Para pode somar um período de data, no seu exemplo fariamos assim:SUM
Soma expressoes numéricas e coloca o valor em variáveis
───────────────────────────────────────────────────────
Sintaxe
SUM <nLista expr> TO <idLista var>
[<abrangência>] [WHILE <lCondiçao>] [FOR <lCondiçao>]
Argumentos
<nLista expr> é a lista de valores numéricos a serem somados para
cada registro processado.
<idLista var> identifica as variáveis receptoras da soma.
Variáveis que nao existam ou nao sejam visíveis sao criadas como
privadas. <idList var> deve conter o mesmo número de elementos de
<nLista expr>.
<abrangência> é a porçao do arquivo de dados a ser somada (SUM). O
assumido é todos (ALL).
WHILE <lCondiçao> especifica o conjunto de registros a partir do
registro corrente até que a condiçao seja falsa.
FOR <lCondiçao> especifica o conjunto condicional de registros a
serem somados dentro da abrangência dada.
Descriçao
SUM soma uma série de expressoes numéricas e armazena o resultado em
variáveis para uma faixa de registros na área corrente.
Note que <nLista expr> é necessária e nao opcional como em outros
dialetos.
Exemplos
O exemplo seguinte ilustra o uso de SUM:
USE Sales NEW
SUM Price * .10, Amount TO nSum1, nSum2
? nSum1 // Resulta: 151515.00
? nSum2 // Resulta: 150675.00
Código: Selecionar todos
Set Date to British
Set Century On
dDta1=Ctod("01/02/2014")
dDta2=Ctod("28/02/2014")
SUM ALL Quant TO nTotal FOR Data>=dDta1 .AND. Data<=dDta2
? nTotalEspero que consiga visualizar a lógica.


