如题。
有入库,出库,库存3个表。
入库表包含:ID,物品ID,入库数量,入库日期
出库表包含:ID,物品ID,出库数量,出库日期
库存表包含:物品ID,库存数量
临时表包含:物品ID,出、入数量
如何计算库存?
我现在的方法是,根据出入库表填充临时表,再根据临时表中的数据进行计算,得出库存数量,然后保存到库存表。
很麻烦。还有个缺点:库存表设计有问题,不能保存不同日期的各个物品库存,只能是一段日期内的总库存。
有没有好的思路,简化操作提高效率?并把那个缺点改掉?
说说思路和大概过程就好。谢谢。
分不够就说,等这个结贴了再开个给分。

解决方案 »

  1.   

    这个问题当然先要看你是出库的方法,一般有三种(先进先出、后进先出、加权平均法),因为对于进销存的数据库来说,起关键还是看出库的方法,然后就是根据你产品的物料码(ID)来决定,可以不用建临时表,直接通过进销来改变库存的数据,如果发生错误,就采用异常处理或是SQL语句中加入回滚,下面是方法:
    先进先出:根据产品的ID+进价单价从而更改库存数量(这种方法不能反应当月合理的成本)按
              日期升序排序
    后进先出:根据产品的ID+进价单价从而更改库存数量(这种方法能有效地反应当月的成本,但
              积压产品,可能质量方面不太好。)
    加权平均法:这种可能是比较科学的方法,因为产品在进仓的时间,它就根据ID,找到相应的产
              品,然后求和算平均价,成本偏差不会太大。我们公司就是用这种方法来的。
    以上方法,希望对你有所帮助。
      

  2.   

    收到。非常感谢各位。
    这只是个简单的Project。不存在成本核算的问题。只要记录出入库并能计算库存就可以了。
    或许 lwk_hlj(阿凯(学习oralce中)) 说的对。把3个表整合在一起会比较好。
    现在的这个数据库的结构和表关系应该存在一些问题(还没有完善),所以不好计算库存。
    最终应该达到这样的要求:
    入库和出库可以记录基本信息如物品ID,数量,日期;库存必须根据入库和出库情况计算得到,包含物品ID,库存量,日期,并且可以获得任意日期的任意物品的库存情况。
    现在开始重新修改下数据库。
    希望大家有什么新想法了能回个帖子,谢谢。
      

  3.   

    库存表包含:物品ID,库存数量
    增加一个清算时间,及自增长的id入库表包含:ID,物品ID,入库数量,入库日期
    出库表包含:ID,物品ID,出库数量,出库日期
    这2个表里加触发器,任何一个表里的数据发生修改后,经过计算后,在库存表里插入一条新的记录。
    插入触发器,直接对系统产生的inserted表用游标遍历一遍,在库存表里取出相应的当前数量并相加或相减后,向库存表插入新记录及当前时间;
    修改触发器,需要使用系统产生的inserted表和deleted表,得出变更的数量,在库存表里取出相应的当前数量并相加或相减后,向库存表插入新记录及当前时间;
    删除触发器,直接对系统产生的deleted表用游标遍历一遍,在库存表里取出相应的当前数量并相加或相减后,向库存表插入新记录及当前时间;