Запрос обновления из поискового запроса
-
05-07-2019 - |
Вопрос
У меня есть электронная таблица, которую я конвертирую в базу данных Access.У меня есть столбец с напечатанными именами клиентов, которые я хочу заменить соответствующим номером клиента из нашей системы учета.
Я создал таблицу с информацией о клиенте и запрос, который показывает, какой идентификатор необходимо вставить в исходные данные.То, что я ищу, это:
UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y
Где X и Y берутся из qryIDPerCustomer.
Могу ли я использовать цикл?Как мне сослаться на другой запрос?
Решение
Еще одна возможность в MS Access (имена объектов заимствованы из ответа Томалака):
UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName
Другие советы
Я думаю, что ПРИСОЕДИНЕНИЕ поможет вам:
UPDATE
tblStarting_Data AS sd
INNER JOIN qryIDPerCustomer AS qc ON sd.TEMPCustomer = qc.CustomerName
SET
sd.CustomerID = qc.CustomerID;
Это также может быть выражено в виде коррелированного подзапроса (хотя синтаксис объединения предпочтительнее).:
UPDATE
tblStarting_Data
SET
CustomerID = (
SELECT CustomerID
FROM qryIDPerCustomer
WHERE CustomerName = tblStarting_Data.TEMPCustomer
)
Нет необходимости в цикле, оба оператора обновят все записи в tblStarting_Data
за один шаг.