2016-08-02 12 views
0

おはようございます。 私はいくつかの質問をしたいが、その前に私は質問をする前に私が現在持っていることを説明したい。他の2つのテーブルの計算を使用してテーブルを更新する

私は3つのテーブルを持っています。

Table: Receiving

enter image description here

Table: GeneralInventory

enter image description here

と最後のものはTable: item_master_list

enter image description here

です

私はVB.Netでffを実行するプログラムを持っています。 Table: Receiving

1.Based iはRINo選択されますと、私は私がボタン POSTを押します(RI00000001

2.AfterがTable: ReceivingRI00000001を選択する上での画像の上に例を使用すると、この後に私のコードがしているものです。 Table:Receivingの列ItemCodeからのデータが列Table: GeneralInventoryItemCodeで同じデータを持っている場合

-Theコードがチェックされます。

-Now比較が真であるか、両方のテーブルから同じデータがあるかどうTable: Receivingから列QtyPackQtyStanが追加されます/ SUMを柱-Now

GeneralInventoryQtyで比較がFalseかtheresのであれば2つのテーブルを比較しない場合、データは GeneralInventoryに挿入されます。

私はあなたがそれを得ることを望みますが、ここにサンプル画像はありません。

enter image description here

とその手続きのために、今私のコードこれです。

コードを検索してください。

Select * 
From 
    GeneralInventory GI 
Inner Join 
    Receiving RE on GI.ItemCode = RE.ItemCode 
Where RE.RINo = 'MyValue' 

次に、上記のコードが真である場合、これは、これは挿入するためのコードである

UPDATE GeneralInventory GI 
INNER JOIN receiving RE ON GI.ItemCode = RE.ItemCode AND 
GI.Qty = RE.QtyPack 
SET GI.Qty = CAST(GI.Qty + RE.QtyPack + RE.QtyStan AS DECIMAL(6,2)) 
Where RE.RINo = 'MyValue' 

かが偽である場合を更新するためのコードです。

INSERT INTO GeneralInventory(ItemCode, Qty) 
SELECT RE.ItemCode, RE.QtyPack 
FROM 
    Receiving RE LEFT JOIN 
    GeneralInventory GI ON GI.ItemCode = RE.ItemCode AND 
     GI.Qty =CAST(RE.QtyPack + Re.QtyStan AS DECIMAL(6,2)) 
WHERE RE.RINo = 'MyValue' 

は今ここに私の質問で、私の質問はItem_Master_Listに関連しており、ここにあります。

どうすればこのようにすることができますか?最初に私はTable: Receivingを使ってTable:GeneralInventoryを更新する前に、Table: item_master_listで計算をしたいのですが、それはgeneralinventoryにデータを更新または挿入する前です。item_masterlistで乗算します。

などが、私はあなたがそれを得ることを願っていgeneralinventory

でそれを保存する前receivingに値を使用してQtyperUoMの列を使用して、それを掛けitem_master_listに同じ値を見つけます。

TYSM

+0

他のテーブルから乗算を行う条件はありますか? –

+0

これを参照してくださいhttp://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html –

+0

@ AT-2016私はそれがQtyPackを掛けるようなものであるという条件はないと思う* QtyperUoM –

答えて

0
UPDATE generalinventory gi 
set gi.qty = (SELECT (r.QtyPack * r.QtyperUoM + r.QtySan) 
      from receiving r, item_master_list ml 
      where r.itemCode = ml.itemCode 
      and t.itemCode = gi.itemCode) 
1

更新を行うには、以下のクエリを使用します。

UPDATE GeneralInventory SET Qty = (Qty * QtyperUoM) + l.QtyStan 
FROM GeneralInventory s INNER JOIN item_master_list i 
on s.ItemCode = i.ItemCode INNER JOIN Receiving l ON s.ItemCode = l.ItemCode 

ちょうどINNERは、テーブルの関係について、JOINんでした。

+0

これはエラーSirです。私の質問はどのように 'QtyStan'を追加できますか?私は 'QtyPack'を意味する*' QtyperUoM' + 'QtyStan' –

+0

投稿を編集しました。ちょうど同じことをしました - INNER JOIN。商品コードがFKであるため、テーブル間の関係を維持することができます。 –

+0

エラーがあります –

関連する問題