纠结两天仍无果,只好再来请教如何写这样一个程序
题外话:上次请教的是连接查询没结果,sdta大大帮我找到了问题所在,再次表示感谢。其实我也不是那种遇到问题就来求助的人,只是确实还没入门,工作上又有任务,不允许有那么多时间来让我学会再去做,希望各位高手谅解,对你们的无私帮助表示真心的感谢,谢谢。
问题开始
两个表,想要通过计算得到如下结果 (附件在最下面)
字段名 matnr werks lgort waers menge meins budat
10000000 4000 1 CNY 520.00 ZHI (取了一小段,所以此项数据不全)
10000001 4000 1 CNY 38.00 ZHI 05/12/2014
10000002 4000 1 CNY 350.00 ZHI 09/17/2014
10000003 4000 1 CNY 4668.00 ZHI 08/16/2014
10000005 4000 1 CNY 201.00 ZHI 05/04/2014
10000006 4000 1 CNY 468.00 ZHI 07/13/2014
10000007 4000 1 CNY 115.00 ZHI (取了一小段,所以此项数据不全)
10000008 4000 1 CNY 500.00 ZHI 09/17/2014
10000008 4000 1 CNY 160.00 ZHI 06/11/2014
10000011 2000 6 CNY 1400.00 ZHI 08/22/2014
10000011 2000 6 CNY 5377.00 ZHI 08/15/2014
10000012 2000 6 CNY 5100.00 ZHI (取了一小段,所以此项数据不全)
10000020 2000 5 CNY 50.00 ZHI (取了一小段,所以此项数据不全)
我的计算逻辑:
条件:total.matnr=daytime.matnr and total.werks=daytime.werks and total.lgort=daytime.lgort;
用total.total自上而下去减daytime.menge的第一条记录,所得结果再去减daytime.menge的第二条记录,所得结果再去减第三条,第四条...如此循环;
判断:若daytime.No2=1且结果<=0,则取出daytime表中的该条记录并将对应daytime.menge字段值更新为total.total;
例如:mantr=10000001, daytime.No2=1,total.total-daytime.menge<0,则取出表daytime中的这条记录,并将daytime.menge字段值更新为38.00.
否则,取出daytime表中所有结果>0以及第一条结果<=0的记录,并将第一条结果<=0的记录的daytime.menge字段值更新为上一条记录所做减法的余数。
例如 matnr=10000008, 取出的是daytime表中daytime.No2=1,2这两条记录,并将daytime.No2=2的daytime.menge字段值更新为daytime.No2=1这条记录所做减法的余数160.00
注:
menge字段为数值型,No2字段为整形,其余为字符型。
Visual FoxPro 项目.rar
(1.63 KB)
[ 本帖最后由 kinvanhon 于 2014-11-4 11:43 编辑 ]