一尘不染

Access DB用另一个表中的值更新一个表

sql

我试图用另一个表中找到的值更新一个表中的所有记录。

我尝试了相同基本查询的许多版本,并且始终收到相同的错误消息:

操作必须使用可更新的查询。

关于为什么此查询在Access DB中不起作用的任何想法?

UPDATE inventoryDetails as idet
SET idet.itemDesc = 
(
    SELECT bomItemDesc
    FROM BOM_TEMPLATES as bt
    WHERE bt.bomModelNumber = idet.modelNumber
)

也尝试了此操作,因为我意识到第二张表的每个型号都有多个型号记录-我只需要为每个型号找到第一条记录中的第一条说明。

UPDATE inventoryDetails as idet
SET idet.item_desc = 
(
    SELECT TOP 1 bomItemDescription 
    FROM BOM_TEMPLATES as bt
    WHERE bt.bomModelNumber = idet.modelNumber
)

…虽然仍然出现相同的错误。


阅读 114

收藏
2021-05-05

共1个答案

一尘不染

您必须使用联接

UPDATE inventoryDetails 
INNER JOIN BOM_TEMPLATES ON inventoryDetails.modelNumber = BOM_TEMPLATES.bomModelNumber 
SET inventoryDetails.itemDesc = [bomItemDesc];
2021-05-05