这里有一个有趣的文章,我发现在我的项目有用:先入先出(FIFO)的库存成本
Set-based Speed Phreakery: The FIFO Stock Inventory SQL Problem:
我们用它来跟踪的轨道运动库存表进出我们想象中的库存仓库。我们的仓库最初是空的,然后股票因股票购买(tranCode ='IN')或由于随后的返回(tranCode ='RET')而进入仓库,并且当仓库移出仓库时它被出售(tranCode ='OUT')。每种类型的库存都通过ArticleID进行识别。由于某个商品的购买,销售或退货,库存内外的每次库存移动都会导致一行被添加到库存表中,由StockID标识列中的值唯一标识,并描述有多少项目被添加或删除,购买价格,交易日期等。
虽然我正在使用这个在我正在进行的项目上,但我一直坚持如何在每次交易的OUT上获得价格收费。我需要有这个价值来确定我会向客户收取多少费用。
首先增加5个苹果(各$ 10.00)的股票,共计$ 50.00
添加3个苹果(各$ 20.00美元)的股票共有8个苹果,为$ 110.00总价
然后拿出6项(5每$ 10.00 1每$ 20.00美元)$总共70个
它将离开2个苹果@每$ 20,总$ 40
012交易完成后
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”交易
您需要为每个交易(In,Out,ret)赋予一个唯一的数字,以便您可以知道苹果的数量和价格。基于此,您可以通过计算(数量*价格)计算总计有多少。 –
股票表中有一个主键。它只是我不想为了简单而显示它,我也使用ItemID而不是苹果。你不能仅仅通过计算(数量*价格)的价格孤单,记得我需要实现FIFO规则。 – samantha07