这是一篇有趣的文章,我发现它对我的项目很有用:
基于集合的 Speed Phreakery:先进先出库存 SQL 问题 http://www.simple-talk.com/sql/performance/set-based-speed-phreakery-the-fifo-stock-inventory-sql-problem/:
库存表,我们用它来跟踪库存进出我们的假想库存仓库的动向。我们的仓库最初是空的,然后由于库存购买 (tranCode = 'IN') 或由于后续退货 (tranCode = 'RET'),库存会移入仓库,并且在以下情况下库存会移出仓库:它已售出(tranCode = 'OUT')。每种类型的库存项目均由 ArticleID 标识。由于给定商品的购买、销售或退货,每次库存进出仓库的移动都会导致向 Stock 表中添加一行,该行由 StockID 标识列中的值唯一标识,并描述有多少添加或删除的商品、购买价格、交易日期等。
尽管我在正在进行的项目中使用了它,但我仍然坚持如何获取每笔交易的收费价格“OUT”。我需要有这个值来确定我将向客户收取多少费用。
首先添加 5 个苹果(每个 10.00 美元)到库存中,总计 50.00 美元
在 8 个苹果的库存总数中添加 3 个苹果(每个 20.00 美元),总价为 110.00 美元
然后取出 6 件物品(5 件每件 10.00 美元,1 件每件 20.00 美元)总计 70 美元
交易完成后,将留下 2 个苹果,每个 20 美元,总共 40 美元
Here's my current table
Item transaction code qty price
apple IN 5 10.00
apple IN 3 20.00
apple OUT 6
Manual computation for the OUT transaction price (FIFO)
QTY price total price
5 10.00 50.00
1 20.00 20.00
TOTAL:6 70.00
Output of the script:
Item CurrentItems CurrentValue
apple 2 40.00
What I need:
Item transaction code qty price CurrentItems CurrentValue
apple IN 5 10.00 5 50.00
apple IN 3 20.00 8 110.00
apple OUT 6 2 40.00
This too will be OK
Item transaction code qty price CurrentItems
apple IN 5 10.00 0
apple IN 3 20.00 0
apple OUT 6 70
赢得比赛的脚本非常有用,我希望有人可以帮助我如何获取每笔“OUT”交易的价格
我建议您设计如下表格:
向表中添加一个新字段,即 qty_out
出售前的表格:
Item transaction code qty qty_out price
apple IN 5 0 10.00
apple IN 3 0 20.00
apple OUT 6 null
出售 6 件商品后的表格:
Item transaction code qty qty_out price
apple IN 5 5 10.00
apple IN 3 1 20.00
apple OUT 6 null
您可以将“qty”与“qty_out”(对于 IN 交易)进行比较以找出价格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)