我现在准备建立一个历史库存表,每一个月结一次库存用来查询历史库存。现在入库表、出库表、历史库存表结构如下:
rkb(入库表): rkrq(入库日期) hwid(货物编号) ckmc(仓库名称) rksl(入库数量)  rkdj(入库单价)  rkje(入库金额)
ckb(出库表): ckrq(入库日期) hwid(货物编号) ckmc(仓库名称) cksl(出库数量)  ckdj(出库单价)  ckje(出库金额)
lskcb(历史库存表):jcrq(结存日期) hwid(货物编号) ckmc(仓库名称) kcsl(库存数量) kcdj(库存单价) kcje(库存金额)
还有一个pmb(品名表)结构如下:hwid(货物编号) hwmc(货物名称) hwgg(货物规格) jldw(计量单位)
    查询的时候我需要先判断距离所输入的日期最近的结存日期(需要小于输入的日期),然后再按照hwid(货物编号)来逐条计算每个货物的记录。算的时候,只加减库存数量和库存金额,库存单价要用最后得来的金额和数量计算。最后还要根据hwid连接pmb(品名表)显示出来货物名称和规格等。想了好长时间,没有个思路,不知道该怎么写,大家最好能给个范例出来,谢谢了。

解决方案 »

  1.   

    这个好像一个sql语句搞不定吧首先要通过日期,得出最近一次结存时各种货物的库存,
    语句为select * from lskcb where jcrq<:s1 order by lskcb desc  参数s1就是你输入的日期
    这样第一条记录就是最近一次结存时各种货物的库存了,并得出结存日期jcrq1然后从入库表和出库表中查询最近一次结存日期与输入日期之间是否有出入库记录,得出这段时间内货物的入库数量和出库数量
    最后,三种数量加减得出最终数量
      

  2.   

    主要是不会写加减那地方的语句,因为是根据hwid分条计算的,每一个hwid都要计算一次加减,一次就把所有记录的历史库存都算出来