主题:如何统计期未结余金额
qiuluhui
[专家分:0] 发布于 2011-10-31 16:07:00
表结构为:日期、支出、收入,现要用select命令生成:日期、期初金额、支出、收入、期未结余的形式
如: 日期 支出 收入
20110930 5000.00 6000.00
20111001 200.00 100.00
20111002 2000.00 1500.00
按20111001至20111031范围统计后结果为:
日期 期初金额 支出 收入 期未结余
20111001 1000.00 200.00 100.00 900.00 期初金额是20110930以前的 收支数
20111002 2000.00 1500.00 400.00
回复列表 (共4个回复)
沙发
红人不红 [专家分:0] 发布于 2011-11-09 16:30:00
这个不会弄啊,只怪当年没好好学习下VF
signature----------------------------------------------------------
--I want to bring out the secrets of nature and apply them for the happiness of man[[url=http://www.kobe4sale.com/nike-air-zoom-vapor-vi-tour-c-23.html]nike air zoom vapor vi tour[/url][url=http://www.kobe4sale.com/nike-air-max-tailwind-4-c-25.html]nike air max tailwind 4[/url][url=http://www.kobe4sale.com/air-jordan-alpha-1-c-14.html]air jordan alpha 1[/url][url=http://www.kobe4sale.com/nike-zoom-kobe-vi-c-2.html]nike zoom kobe vi[/url]
板凳
lygcw9603 [专家分:250] 发布于 2012-01-27 04:19:00
不是一句两句说的清楚。
加QQ群:208460253 找VFP
3 楼
jiafangliang [专家分:0] 发布于 2012-02-07 21:18:00
use 表1 IN 0 ALIAS A
USE 表2 IN 0 ALIAS B EXCLUSIVE
SELECT b
ZAP
SELECT a
s=0
DO WHILE !EOF()
s=s+收入-支出
SKIP
sy=收入
zc=支出
SELECT b
APPEND BLANK
IF SUBSTR(日期,8,1)='1' &&日期为当月1日
replace 期初金额 WITH s,收入 WITH sr,支出 WITH zc,期末结余 WITH s+sr-zc
ELSE
replace 收入 WITH sr,支出 WITH zc,期末结余 WITH s+sr-zc
ENDIF
select a
ENDDO
4 楼
sdta [专家分:570] 发布于 2012-02-09 22:15:00
[quote]use 表1 IN 0 ALIAS A
USE 表2 IN 0 ALIAS B EXCLUSIVE
SELECT b
ZAP
SELECT a
s=0
DO WHILE !EOF()
s=s+收入-支出
SKIP
sy=收入
zc=支出
SELECT b
APPEND BLANK
IF SUBSTR(日期,8,1)='1' &&日期为当月1日
replace 期初金额 WITH s,收入 WITH sr,支出 WITH zc,期末结余 WITH s+sr-zc
ELSE
replace 收入 WITH sr,支出 WITH zc,期末结余 WITH s+sr-zc
ENDIF
select a
ENDDO
[/quote]
-------------------------------------------------------------------------
[color=800000][size=6]浅析3楼的代码[/size][/color]
DO WHILE !EOF()
s=s+收入-支出
[color=008000]SKIP[/color]
我做了一个试验,正常情况下,DO WHILE !EOF() 循环开始,记录指针应该指向首记录,因此,前面的SKIP用在此处不太合适,应该换个位置。
[color=008000]SUBSTR(日期,8,1)='1' &&日期为当月1日[/color]
日期最后1位数字是1,一定是当月的1日吗,日期后两位数字为11,21,31不行吗
**************************************************************************
本人在此声明:分析代码并不是诋毁三楼的朋友,而是就事论事,对代码分析的过程,也是提高一个人纠错能力的过程,只有不断的分析和学习,才能不断提高一个人编写代码的水平。为此给三楼朋友带来的诸多不便,本人在此表示诚恳谦意。
我来回复