我正在计算销售商品的成本,以便我以后可以将其发布到期刊中。 我的库存卡表如下:
warehouse_product_id sc_date qty price reserved_qty left_qty status
3 1/12/2014 2 100 0 2 debit
3 2/12/2014 2 200 0 2 debit
3 3/12/2014 10 200 0 10 debit
假设我想sell 3 items
warehouse_product_id = 3
,有人可以告诉我如何查询以下结果:
FIFO(先进先出)
warehouse_product_id sc_date qty price reserved_qty left_qty status
3 1/12/2014 2 100 0 2 debit
3 2/12/2014 2 200 0 2 debit
LIFO(后进先出)
warehouse_product_id sc_date qty price reserved_qty left_qty status
3 3/12/2014 10 200 0 10 debit
另一个例子,我希望sell 5 items
与warehouse_product_id = 3
,结果记录应该是这样的:
FIFO(先进先出)
warehouse_product_id sc_date qty price reserved_qty left_qty status
3 1/12/2014 2 100 0 2 debit
3 2/12/2014 2 200 0 2 debit
3 3/12/2014 10 200 0 10 debit
LIFO(后进先出)
warehouse_product_id sc_date qty price reserved_qty left_qty status
3 3/12/2014 10 200 0 10 debit
问题:
我希望获得行数,如果你总结他们的left_qty
它将是>=
而不是请求的数量,在上面的例子中是3 and 5
。因此,通过使用FIFO,我将分别得到前2行和3行。对于LIFO,我只需要最后一条记录,因为它足以覆盖所请求的数量。
P.S。如果可能,我不想使用Procedure
..
答案 0 :(得分:1)
您可以创建一个包含每天商品总额的视图:
sc_date total_sum reversed_total_sum
1/12/2014 2 14
2/12/2014 4 12
3/12/2014 14 10
然后您可以轻松选择需要FIFO或LIFO的任何数量的商品。