论坛首页 综合技术论坛

头疼的科目余额计算

浏览 3196 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-01  
一 表结构及数据:
1:科目表 KM
(科目编号   科目名称  科目全称)
  KMBH     KMMC    KMQC
  1001     现金     现金
  1001-01  人民币   现金-人民币
  1001-02  美圆     现金-美圆
  1603     在建工程 在建工程
  1603-01  建筑费   在建工程-建筑费
  1603-02  安装费   在建工程-安装费
  1603-03  设备费   在建工程-设备费
  1603-04  其他费   在建工程-其他费
2:凭证表 PZ
  (凭证编号     科目编号  借方金额  贷方金额 摘要   录入日期)
  PZBH        KMBH    JFJE    DFJE     ZY    LRRQ
  20091210001 1001-01 1000    0              2009-12-01
  20091210001 1603-04 0       1000           2009-12-01

二 余额表格式
   按照科目范围查询某一个月的汇总表,要求如下
   科目编号,科目名称,期初借方金额,期初贷方金额,本期借方金额,本期贷方金额,累计余额

三 其他说明
  1:凭证表数据随着时间的增加数据量越来越多
  2:科目编号有层次要求,如1001-01 和1001-02为1001的2个叶子节点科目,而录入的凭证只有叶子节点科目,所以在汇总余额时会有一个向父节点科目汇总的过程

四 问题
   原本的设计思路是直接在BO里直接写一个INSERT语句来实现,遇到2个问题:a,数据量大的时候会出现从套接字无法获取更多数据问题;b:因为采用一条INSERT语句来实现所以FROM下对应的是一个复杂的SELECT语句,而ORACLE恰好INSERT对复杂的语句有BUG,会出现数据插入不稳定的现象.针对以上问题放弃了一条语句实现改用存储过程,先在外层构造动态游标,然后循环计算每一个科目的期初借方金额,期初贷方金额,本期借方金额,本期贷方金额,累计余额数据(拿科目表里的KMBH去LIKE凭证表里的KMBH)再INSERT,行到是行就是那个速度啊,太慢.
   在这里请教各位看有什么别的好方法没,因为本人对ORACLE不是很熟悉,主要是才切换到这个数据库,很多思路还没打开,谢谢各位了!
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics