Доступ связать несколько записей к одной записи - PullRequest
0 голосов
/ 15 мая 2018

У меня вопрос о 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 голосов
/ 15 мая 2018

Вы можете создать таблицу сопоставления и регулярно обновлять все записи на основе этой таблицы сопоставления:

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);

Если вы заполните таблицу сопоставления изатем выполните эти 2 запроса, все заказы будут скорректированы, а дубликат клиента удален.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...