更新 table 并将字段值设置为左连接的结果
Updating table and setting the field values to the result of a left join
我有一个 table 销售字段供应商("Company A"、"Company B"、"Trader X"),并且我单独创建了一个 table 调用具有两个字段的供应商:VendorID 和 VendorName。
我想删除 table Sales 中的 Vendor 字段并将其替换为 VendorID 字段并使用相应的 VendorID 填充该字段。换句话说,用供应商 table.
中的 ID 替换销售 table 中供应商的名称
我尝试了很多解决方案,但它们都不起作用。这是我认为可行的方法。销售 table 中的某些条目没有列出任何供应商。有 203 个条目和左连接,当 运行 单独时,returns 所有 203 个供应商和适当的空值。
Update Sales
Set Sales.VendorID = (Select VendorID From Vendors v Left Join Sales s on
v.VendorName = s.Vendor);
当我 运行 时,我得到一个对话框询问:
Enter Parameter Value
或者我收到错误消息:
Operation must use an updateable query
我使用的是 MS Access 2016。
我认为你不需要子查询,你可以只使用 UPDATE ... JOIN ... SET
语法,比如 :
UPDATE sales AS s
INNER JOIN Vendors AS v ON v.VendorName = s.Vendor
SET s.VendorID = v.VendorID
我有一个 table 销售字段供应商("Company A"、"Company B"、"Trader X"),并且我单独创建了一个 table 调用具有两个字段的供应商:VendorID 和 VendorName。
我想删除 table Sales 中的 Vendor 字段并将其替换为 VendorID 字段并使用相应的 VendorID 填充该字段。换句话说,用供应商 table.
中的 ID 替换销售 table 中供应商的名称我尝试了很多解决方案,但它们都不起作用。这是我认为可行的方法。销售 table 中的某些条目没有列出任何供应商。有 203 个条目和左连接,当 运行 单独时,returns 所有 203 个供应商和适当的空值。
Update Sales
Set Sales.VendorID = (Select VendorID From Vendors v Left Join Sales s on
v.VendorName = s.Vendor);
当我 运行 时,我得到一个对话框询问:
Enter Parameter Value
或者我收到错误消息:
Operation must use an updateable query
我使用的是 MS Access 2016。
我认为你不需要子查询,你可以只使用 UPDATE ... JOIN ... SET
语法,比如 :
UPDATE sales AS s
INNER JOIN Vendors AS v ON v.VendorName = s.Vendor
SET s.VendorID = v.VendorID