访问将多个记录链接到同一记录

时间:2018-05-15 12:27:37

标签: sql vba ms-access

我对Microsoft Access 2010有疑问。我有以下表格:

客户:

CustomerID  |  Name
123            John
243            Pete
567            John

订单:

OrderID  |  CustomerID  |  Price
54332       123            80
43593       567            40
28493       243            60
58489       123            50

我的客户123和567实际上是相同的,所以我想将我的表订单更新到下面:

OrderID  |  CustomerID  |  Price
54332       123            80
43593       123            40
28493       243            60
58489       123            50

当然,这是一个简化版本。我必须不止一次这样做,所以有快速的方法吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以创建映射表,并根据该映射表定期更新所有条目:

OldID      |  NewID
567            123

然后:

UPDATE Orders o INNER JOIN MappingTable m ON m.OldID = o.CustomerID
SET o.CustomerID = m.NewID;

DELETE *
FROM Customers c
WHERE EXISTS (SELECT 1 FROM MappingTable m WHERE m.OldID = c.CustomerID);

如果您填写映射表,然后执行这两个查询,则会调整所有订单并删除重复的客户。