如何使用相同的代码值从一个表到另一个表重复更新语句?

我正在使用Microsoft Excel服务器pipe理工​​作室与Excel电子表格

我有2个表格从2个独立的电子表格中提取。

一个表(StockList)有来自我的供应商的数据,每天可以提取5600行产品

ProductCode VARCHAR(40), Brand VARCHAR(40), ProductDescription VARCHAR(300), UnitPrice VARCHAR(40), CTNPrice VARCHAR(40) 

另一张表(MasterSheet)是我目前的订单清单,有600行产品

  Code VARCHAR(40), Item VARCHAR(40), Unit VARCHAR(10), Price VARCHAR(10), PerPack VARCHAR(10), PackSize VARCHAR(10) 

由于价格从我的供应商变化,但代码保持不变,我想要做的就是通过引用代码自动更新[StockList]表[MasterSheet]表上的价格。 以下语句一次更新其中一个代码

  UPDATE MasterSheet set price = (select UnitPrice from StockList where ProductCode = '38074') from StockList where code = '38074' 

这完美的工作,但我想知道,如果你可以用一个语句同时更新所有的代码,而不是创build数百个更新语句。 我只想更新[StockList]的[价格]没有别的。

谢谢

您可以join这两个表,一次更新所有logging。

 UPDATE MS SET Price = SL.UnitPrice FROM MasterSheet MS INNER JOIN StockList SL ON MS.Code = SL.ProductCode 

您可以使用相关的子查询来扩展您的逻辑:

 UPDATE MasterSheet ms set price = (select UnitPrice from StockList sl where sl.ProductCode = ms.Code); 

您的原始查询看起来看起来不正确。 比较简单的是:

  UPDATE MasterSheet set price = (select UnitPrice from StockList where ProductCode = '38074'); where code = '38074'; 

请注意删除了从句。

from StockList的使用仅仅意味着相同的更新重复数千次 – 对于StockList每一行。