【发布时间】:2019-02-01 00:42:25
【问题描述】:
我有一个包含字段供应商(“公司 A”、“公司 B”、“交易者 X”)的销售表,并且我创建了一个名为供应商的单独表,其中包含两个字段:供应商 ID 和供应商名称。
我想删除表 Sales 中的 Vendor 字段并将其替换为 VendorID 字段并使用相应的 VendorID 填充该字段。换句话说,将 Sales 表中的供应商名称替换为 Vendors 表中的 ID。
我尝试了许多解决方案,但它们都不起作用。这是我认为可行的方法。销售表中的某些条目没有列出任何供应商。有 203 个条目,左连接在单独运行时返回所有 203 个供应商和相应的空值。
Update Sales
Set Sales.VendorID = (Select VendorID From Vendors v Left Join Sales s on
v.VendorName = s.Vendor);
当我运行它时,我得到一个对话框询问:
输入参数值
或者我收到错误消息:
操作必须使用可更新的查询
我正在使用 MS Access 2016。
【问题讨论】:
-
只想说清楚。既然需要更新Sales表的vendor_id列的值,那么子查询join不应该写成v.vendor_name=s.vendors,而不是他们的id吗?抱歉,我对 MS Access 不太了解,我不确定错误消息。
-
正确。我很抱歉。我已经研究这个问题一段时间了。