これは、私のプロジェクトに役立つ興味深い記事です。
セットベースのスピード詐欺師: FIFO ストック インベントリ SQL 問題:
仮想の在庫倉庫に出入りする在庫の動きを追跡するために使用する在庫テーブル。当社の倉庫は最初は空で、在庫購入 (tranCode = 'IN') の結果として、またはその後の返品 (tranCode = 'RET') により在庫が倉庫に移動し、次の場合に在庫が倉庫から移動します。販売されています (tranCode = 'OUT')。在庫項目の各タイプは、ArticleID によって識別されます。特定のアイテムの購入、販売、または返品により、在庫が倉庫に出入りするたびに、行が Stock テーブルに追加され、StockID ID 列の値によって一意に識別され、その数が記述されます。アイテムの追加または削除、購入価格、取引日など。
私は進行中のプロジェクトでこれを使用していますが、すべてのトランザクションで料金を請求する方法に固執しています。顧客に請求する金額を決定するには、この値が必要です。
まず、5 個のリンゴ (各 $10.00) をストックに追加します。合計 $50.00 になります。
リンゴ3個(各$20.00)を合計8個のリンゴに追加すると、合計価格は$110.00になります
次に、6 つのアイテムを取り出します (各 10.00 ドルと 20.00 ドルごとに 1 つ) 合計 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」トランザクションごとの価格を取得する方法について、誰かが私を助けてくれることを願っています