msAccess добавить данные в несколько строк, где есть совпадение - PullRequest
0 голосов
/ 27 сентября 2018

У меня большой список значений для добавления в новый столбец в базе данных ms Access (к сожалению, данные хранятся в списках SharePoint).

База данных содержит идентификаторы клиентов, и мне нужно добавить данные вновый столбец, в котором данные будут привязаны к каждому идентификатору клиента.

Моя таблица данных для добавления, например:

Cust ID | DataToAdd
  1     |   Car
  2     |   Boat
  3     |   Bike
  4     |   Plane

Моя таблица настроена аналогично:

Cust ID | Location | DataToAdd
  1     |  Europe  |
  2     |  Asia    |
  3     |  Africa  |
  4     |  US      | 

Я знаю, как вставлять значения по отдельности (но данные имеют тысячи записей), используя:

Insert Into [MyTable] (DataToAdd) Values (Car)
where [Cust ID] = 1

Есть ли способ сделать это навалом, чтобы добавить все DataToAddстолбец таблицы, где идентификаторы CustID одинаковы?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018
A staging table is definitely a good idea.  You can also use `switch`:

update t
    set datatoadd = switch(customerid = 1, 'car',
                           customerid = 2, 'boat',
                           customerid = 3, 'bike',
                           customerid = 4, 'plane',
                           1=1, datatoadd
                          );

Вы можете построить каждое из условий, используя формулу в электронной таблице.Это может сделать генерацию такого запроса довольно простой.

0 голосов
/ 27 сентября 2018

Создайте промежуточную таблицу с новыми данными.

[stagingTable]
Cust ID | DataToAdd
  1     |   Car
  2     |   Boat
  3     |   Bike
  4     |   Plane

и обновите таблицу назначения

UPDATE [MyTable]
INNER JOIN [stagingTable] ON [MyTable].[Cust ID] = [stagingTable].[Cust ID]
SET [MyTable].[DataToAdd] = [stagingTable].[DataToAdd]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...