2016-08-02 137 views
0

早上好。 我想問一些問題,但在此之前,我想解釋我目前有什麼問題。使用另外兩個表格的計算更新表格

我有3個表,他們是。

Table: Receiving

enter image description here

Table: GeneralInventory

enter image description here

和最後一個是Table: item_master_list

enter image description here

我在VB.Net中有一個程序可以做ff。

1.Based上Table: Receiving我將選擇一個RINo和我將使用的示例中的圖像上的上述(RI00000001

2.After在Table: Receiving選擇RI00000001我將按下按鈕 POST和之後,該是我的代碼所做的。

-The代碼將檢查數據從列的Table:ReceivingItemCode在列的Table: GeneralInventoryItemCode相同的數據。

- 現在,如果比較結果爲真或有從兩個表的列QtyPack和從Table: ReceivingQtyStan將添加相同的數據/ SUM在列GeneralInventory

- 現在的Qty如果比較結果爲假或那裏有兩個表格之間沒有比較,那麼數據將被插入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:GeneralInventory使用Table: Receiving我想在Table: item_master_list做一些計算我的意思是我更新或插入數據在generalinventory之前我會乘以item_masterlist

就像找到item_master_list相同的值,然後保存它generalinventory

我希望你得到它之前使用的QtyperUoM使用值的列相乘的receiving

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

它有一個錯誤先生,我的問題是如何添加'QtyStan'?我的意思是'QtyPack' *'QtyperUoM' +'QtyStan' –

+0

編輯該職位。只是做了同樣的事情 - INNER JOIN。由於您的項目代碼爲FK,因此可以保持表格之間的關係。 –

+0

它有錯誤先生 –

相關問題