关于库存余额、财务收支余额的计算

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

1 前言

在库存治理系统中,经常需要涉及查询功能。实现查询功能大致有两种,如下:

第一种是在写入数据表的时候,计算余额,并将余额存入字段中。此方法的优点在于查询速度快,缺点是一旦原始数据需要修改,则余额的同步更新会很复杂,甚至无法实现。

第二种是在数据表的字段中不设立余额字段,在查询过程中实现计算。此方法的缺点是正常情况下速度较慢,优点是数据存取逻辑较简单。

本文主要论述第二种的方法,也就是余额字段的计算。

2 余额实时计算的几种方法

2.1 设立临时表,在查询之前先计算余额

此方法是目前大多数程序员使用的方法,优点是算法简单,缺点是运行效率非常低下,我个人认为不足为取。

2.2 使用Oracle的OVER函数实现

此方法甚至有的OCP仍不懂得,但确实是值得大家研究讨论的解决方案。

OVER函数的简单资料在附件,大家可以参阅.

点击此处下载armok0178880.rar

本文重点描述余额实时计算的第二种方法

3 OVER函数实现余额计算

3.1 实例

CONNECT SCOTT/TIGER@DSV241DW1;

SELECT

DEPTNO

,ENAME ITEMNAME

,TO_CHAR(HIREDATE,'YYYY.MM.DD') TRXDATE

,SAL INF

,COMM OUF

,SUM(SAL-NVL(COMM,0)) OVER ( ORDER BY HIREDATE) ENDINV

FROM EMP

ORDER BY HIREDATE;

3.2 字段

INF表示入库

OUT表示出库

ENVINV表示余额

3.33 OVER使用说明

每条记录都SUM本记录之前(包括本记录)的出库和入库,于是求得本记录为止的余额。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航