我正在开发一个包含两个不同表的数据库,这些表需要匹配和更新的记录。基本上,如果两个字符串字段彼此相等,则更新不同的字段。
我无法理解这一切。
第一个表 IngredientDB
包含两个字符串字段, Item Number
和Ingredient Name
第二个表 Table Material Label
还包含两个字符串字段, MaterialCode
和 { {1}}
MaterialDescription
和Ingredient Name
有很多相同的记录,但并非所有记录都相同。我希望能够
MaterialDescription
和MaterialDescription
Ingredient Name
更新为与项目编号完全相同
对应于MaterialCode
。所以我尝试使用更新查询和if语句,这就是它的样子:
目前的问题是,所有Ingredient Name
条记录都填满了“未找到”,这意味着由于某种原因它没有找到任何匹配...
有没有更简单的方法来完成所有这些?我错过了什么吗?对不起,对于Access的东西,我是一个新手。还在学习!
修改 这是我目前所在的image 。箭头表示我想要改变的东西。
来自图片的代码,目前收到语法错误
MaterialCode
答案 0 :(得分:1)
根据您的“我希望能够”列表,正确的SQL将是:
UPDATE [Table Material Label] INNER JOIN [IngredientsDB]
ON [Table Material Label].[MaterialDescription] = [IngredientsDB].[Ingredient Name]
SET [Table Material Label].[MaterialCode] = [IngredientsDB].[Item Number];
如果您想在这些字段中将MaterialDescription
与Ingredient Name
,JOIN
匹配,则可以设置MaterialCode
= Item Number
。
答案 1 :(得分:0)
这取决于您使用的访问版本。
我不太熟悉访问的前端部分,但是如果您从设计器中单击更新查询,则右键单击查询您选择的SQL视图。
根据您提供的信息,您需要以下内容
UPDATE Table Material Label JOIN 'other table' on Table Material Label.'Here you would put your value that is found on both tables' = 'Other table'.'that column that contains the value' SET MaterialCode = Item Number WHERE MaterialDescription = Ingredient Name
哪个应该可以解决问题。就像我说的那样,我不是一个访问者,我是一个年轻的SQL人哈哈。
这篇文章http://www.fmsinc.com/microsoftaccess/query/snytax/update-query.html#Update_Query_Examples 应该提供进一步的帮助。
希望这有帮助!