我正在尝试计算所售商品的成本,以便以后将其发布到日记中。
我的股票卡表如下所示:

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 itemswarehouse_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/

10-11 02:48