2016-07-03 21 views
0

私は毎日の販売および購入トランザクション/エントリを保存する「エントリ」というテーブルを持っています。MySQLインベントリ/在庫平均原価計算

EntryDate EntryType Item Qty Rate Cost Sale 
2016-01-01 Purchase  Apples 10  10  100  - 
2016-01-02 Purchase  Apples 20  15  300  - 
2016-01-02 Purchase  Oranges 20  15  300  - 
2016-01-02 Sale   Apples 5  20  **  100 
.... 
.... 

は今、私は更新にクエリを実行する必要があります---

---エントリ表 [EntryType]は上記の表の[コスト]列を:「エントリ」テーブルは次のようになります'販売'。加重平均法、すなわち現在の販売行コスト=合計(過去のすべての購入費用 - すべての前回の計算された売上原価)/合計(過去のすべての購入数量 - 前回のすべての売上数量)を使用して計算されます。私はちょうど私がこの権利を得たことを確認するために、クエリ

update entires set ... 
+0

あなたは本当にMySQLを使用していますか? C#は列名の角括弧と同様にSQL Serverにも関連付けられています。 –

+0

私はちょうど他のテキストと区別するために角かっこを追加しました...はい私はC#でMySQLを使用しています。 –

答えて

0

を更新する必要がある

Cost = (Sum of cost previous purchases -Sum of cost previous sales)/(sum of qty previous purchases -Sum of qty previous sales) 

[OK]を拳私はすべての人の人生を容易にする小さな提案をしたいです。 1つのタイプをネガティブとして記録する必要があります。 (順番を識別するのに役立つ何かのID列があり期待して)各販売行かかわらループ今

EntryDate EntryType Item Qty Rate Cost Sale 
2016-01-01 Purchase  Apples -10  10  -100  - 
2016-01-02 Purchase  Apples -20  15  -300  - 
2016-01-02 Purchase  Oranges -20  15  -300  - 
2016-01-02 Sale   Apples 5  20  **  100 
.... 
.... 

(コストと数量の両方)あなたは陰性と購入をマーク言うと、クエリの下に実行します。

Cost = SELECT SUM(`ID`)/SUM(`TaxID`) FROM category WHERE `TaxID` < currentID 

これを使用して更新コスト

+0

しかし、私はどのようにループし、mysqlクエリを更新することができますか?誰かも私のようなクエリを言った:更新エントリe1、エントリe2セットコスト=(合計(e2.cost)/合計(e2.qty))どこe1.entrytype = '販売'とe2.EntryDate

+0

私はその質問が正しいとは思わないからです。そして、あなたはストアドプロシージャを使用してループすることができます – Malinga