早上好。 我想问一些问题,但在此之前,我想在提出问题之前解释一下我目前所拥有的问题。
我有3张表,他们是。
Table: Receiving
Table: GeneralInventory
,最后一个是Table: item_master_list
我在VB.Net中有一个程序可以执行ff。
1.基于Table: Receiving
我将选择RINo
,我将使用上图中的示例(RI00000001
)
2.在RI00000001
中选择Table: Receiving
后,我将按下按钮
POST
之后,这就是我的代码所做的。
- 代码将检查ItemCode
的{{1}}列中的数据是否与Table:Receiving
的{{1}}列中的数据相同。
- 如果比较为真或两个表中的数据相同,则ItemCode
中的Table: GeneralInventory
和QtyPack
列将添加到QtyStan
列中1 {} Table: Receiving
- 如果比较为假或两个表之间没有比较,则数据将插入Qty
。
我希望你能得到它,但如果没有,那么样本图片。
现在我的代码就是这个。
寻找代码。
GeneralInventory
现在如果上面的代码为真,那么这就是更新
的代码GeneralInventory
或如果它是false,则这是插入的代码。
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
中的值将其相乘,然后将其保存在QtyperUoM
我希望你明白。
TYSM
答案 0 :(得分: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
刚刚就表关系进行了内部联系。
答案 1 :(得分: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)