Foxtable(狐表)用户栏目专家坐堂 → [求助]在设计fa piao管理系统时遇到的两个问题


  共有14627人关注过本帖树形打印复制链接

主题:[求助]在设计fa piao管理系统时遇到的两个问题

帅哥哟,离线,有人找我吗?
bjljb
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 三级勋章
等级:童狐 帖子:273 积分:2072 威望:0 精华:0 注册:2008/9/5 23:31:00
[求助]在设计fa piao管理系统时遇到的两个问题  发帖心情 Post By:2010/1/31 16:03:00 [显示全部帖子]

为了说明问题,附件中有三个简单的表,这三个表都是外部表,存储在SQL Server 2005数据库中。
【fa piao封面】表大约有12万行,【fa piao明细】表大约有230多万行,【fa piao验旧】表大约有50多万行。

各表之间的关系是:
1、【fa piao封面】表和【fa piao明细】表通过字段“fa piao本号”进行关联,关联名称为“fa piao本”;
2、【fa piao明细】表中的“fa piao号码”列是从【fa piao封面】表中对应的“fa piao起号”开始,逐行加1,一直到“fa piao止号”为止;
3、【fa piao验旧】表中的“fa piao代码”和【fa piao封面】中的“fa piao代码”是两个有交集但不完全相同的集合;
4、【fa piao验旧】表中的“验旧起号”和“验旧止号”与【fa piao明细】表中对应的“fa piao号码”的关系是:每一本的总量相同,但明细是逐份录入,验旧是分段录入。

问题1、如何计算【fa piao封面】表中每一本的“累计填开金额”?
此前已经通过公式列得到这个结果,公式为Sum(Child(fa piao本).填开金额)但公式结果不能保存到后台数据库中。
现在fa piao本数量已经达到10万以上,明细数据有200万之巨,该如何重新计算呢?
是用SQL语句在后台解决好,还是通过Foxtable的代码来解决更好、更快?

问题2、如何比对验旧结果和明细录入的状态?
由于明细表是逐份录入,而验旧表是分段录入,对号码连续且状态相同的fa piao只录入一笔(即便是十几本fa piao,只要是“号码连续且状态相同”,也只录入一笔)。
现在要对这两个表的fa piao状态进行比对,如在【fa piao明细】表中的第58行,代码为165000521311、号码是1088的这一张fa piao(每一张fa piao都是通过fa piao代码和fa piao号码来唯一确定,即fa piao代码不同时,fa piao号码可以相同),在【fa piao验旧】表中查到其对应于第2行,属于1086~1090的号段,于是“验旧结果”就应该是“填用作废”;进而判断“fa piao状态”和“验旧结果”是否相同,若相同,“比对结果”即为True。
如果数据量比较少,完全可以用循环的办法来逐行进行查找,但很显然效率不高,对于现在这样庞大的数据量来说,这种方法不知道要算多长时间才能算出结果?

另外,比对结束后,还要能给出【fa piao明细】表和【fa piao验旧】表的差集,即哪些piao已经验旧但还没有录入?
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:fa piao管理_ljb.table

[此贴子已经被作者于2010-1-31 16:05:08编辑过]

 回到顶部