繁体   English   中英

将费用从一张桌子更新到另一张桌子

[英]Updating cost from one table to another

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

STOCK 
Stk_Invno=sku
Stk_cost=cost

VENINV
Vin_Invno=sku
Vin_cost=cost

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

提前致谢。

如果我正确理解您要完成的工作,可以尝试

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

这是sqlfiddle SQLServer

您正在寻找类似这样的东西吗? 我对你的理解正确吗?

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

试试这个查询:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM