使用SQL从另一个Access表更新MSAccess表

Ham*_*ite 4 sql ms-access ms-access-2007

我正在尝试使用Final中的值更新表Original.我是SQL的新手,但我已经花了两个小时试图改变各种样本以满足我的需求.我正在使用Access 2007.

UPDATE 
  Original o
SET 
  o.[Assest Description] = (
    SELECT f.[Assest Description] FROM Original o, Final f 
    WHERE o.[Assest No] = f.[Assest No])
WHERE o.[Assest No] = Final.[Asset No]
Run Code Online (Sandbox Code Playgroud)

Bar*_*nka 8

我不确定你的select语句只返回一行.如果要使用select赋值语句对表执行更新,则必须确保它只返回一行.

除此之外,您可以考虑下一个解决方案:

update 
   Original as o
   inner join Final as f on o.[Assest No] = f.[Assest No]
set
   o.[Assest Description] = f.[Assest Description]
Run Code Online (Sandbox Code Playgroud)

请注意,只有两者[Assest no]都是表OriginalFinal表中的唯一键,并且它们正确相关时,这才能正常工作.

  • 基于此,我在 Access 2013 中进行了以下查询,效果很好:`UPDATE Components INNER JOIN Analysis ON Components.Component = Analysis.Component SETComponents.BusinessUnit = Analysis.[Test Area], Components.Impact = Analysis.Impact, Components .InScope = SWITCH(分析。[测试区域] =“NA”,False,True,True),Components.InUse = SWITCH(分析。[测试区域] =“未使用”,False,True,True)` (2认同)