日期:2014-05-19  浏览次数:20447 次

这样的情况可以用sql写出来吗?
简介:有一表(product_inventory)存放产品的出库,入库信息。现在因为涉及到退货信息,一个出库可能对应多个退货,所以增加子表product_inventory_back.但是现在计算库存量就比较复杂了。所以特此请教,以下是表结构:

product_inventory   库存表
------------------
inventory_id(主键int)
PRODUCT_ID(FK   产品ID)
QUANTITY     (数量)
AMOUNT       (金额)
in_or_out     (出库入库标志I=入库,O=出库)

product_inventory_back     退货表
------------------------
back_id   (主键int)
inventory_id   (FK   product_inventory)
quantity   (数量)
amount   (金额)


计算每种产品的库存量:入库-出库+退库,金额也同样。
谢谢峨




------解决方案--------------------
+退库 错了
改一下
select PRODUCT_ID ,
sum( case when in_or_out=0 then -QUANTITY else QUANTITY end ),
sum(case when in_or_out=0 then -AMOUNT else AMOUNT end)
from
(select PRODUCT_ID,QUANTITY,AMOUNT,in_or_out from product_inventory union all
select inventory_id ,quantity ,amount , '9 ') a
group by PRODUCT_ID