我需要一个脚本来将费用从VENINV
更新为STOCK
STOCK
Stk_Invno=sku
Stk_cost=cost
VENINV
Vin_Invno=sku
Vin_cost=cost
我需要将VENINV
中的费用更新为STOCK
我需要将费用作为VENINV
中更新的sku的最高费用
库存中所有匹配sku记录的成本
我如何加入和更新?
提前致谢。
答案 0 :(得分:1)
如果我理解你想要完成什么,你可以尝试
UPDATE Stock
SET Stk_cost =
(SELECT MAX(Vin_cost)
FROM VENINV
WHERE Vin_Invno = Stk_Invno)
这是sqlfiddle SQLServer
答案 1 :(得分:0)
这是你想要的东西吗?我理解正确了吗?
update T1
set T1.Field = T2.Field
from Table1 T1
inner join Table2 T2 on T1.SomeId = T2.SomeJoiningId
或者在你的情况下,它应该是:
UPDATE STOCK
SET STOCK.Stk_Cost = VENINV.Vin_Cost
FROM STOCK
INNER JOIN VENINV.Vin_Invno = STOCK.Stk_Invno
答案 2 :(得分:0)
尝试此查询:
update STOCK
set Stk_cost = isnull((select top (1) v.Vin_cost from VENINV v
where v.Vin_Invno = Stk_Invno),Stk_cost)
我已经检查过了,这很好。