1

我需要一个脚本来更新VENINV成本STOCK

STOCK 
Stk_Invno=sku
Stk_cost=cost

VENINV
Vin_Invno=sku
Vin_cost=cost

我需要将成本更新VENINVSTOCK 我需要成本是为 sku 找到的最高成本,VENINV以更新库存中所有匹配 sku 记录的成本 如何加入和更新?

提前致谢。

4

3 回答 3

1

If I understand correctly what you want to accomplish you can try

UPDATE Stock
SET Stk_cost = 
(SELECT MAX(Vin_cost) 
   FROM VENINV 
  WHERE Vin_Invno = Stk_Invno)

Here is sqlfiddle SQLServer

于 2013-02-14T05:19:54.967 回答
0

试试这个查询:

update STOCK 
set Stk_cost = isnull((select top (1) v.Vin_cost from VENINV v 
where v.Vin_Invno = Stk_Invno),Stk_cost)

我已经检查过了,这工作正常。

于 2013-02-14T05:32:46.957 回答
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
于 2013-02-14T04:52:56.717 回答