我正在尝试计算所售商品的成本,以便以后将其发布到日记中。
我的股票卡表如下所示:
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,我只需要最后一条记录,因为它足以满足请求的数量。附言如果可能的话,我不想使用
Procedure
。 最佳答案
您可以创建包含每天总商品的视图:
sc_date total_sum reversed_total_sum
1/12/2014 2 14
2/12/2014 4 12
3/12/2014 14 10
然后,您可以轻松选择需要FIFO或LIFO的任何数量的货物。
关于mysql - SQL-使用FIFO和LIFO获取销售的商品成本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26541690/