将成本从一个表更新到另一个表

时间:2013-02-14 04:45:38

标签: sql

我需要一个脚本来将费用从VENINV更新为STOCK

STOCK 
Stk_Invno=sku
Stk_cost=cost

VENINV
Vin_Invno=sku
Vin_cost=cost

我需要将VENINV中的费用更新为STOCK 我需要将费用作为VENINV中更新的sku的最高费用 库存中所有匹配sku记录的成本 我如何加入和更新?

提前致谢。

3 个答案:

答案 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)

我已经检查过了,这很好。