Оператор SELECT выбирает записи, но не меняет никаких данных.Ваш оператор SELECT возвращает только одно единственное значение - сумму всех сумм.Вероятно, вы хотите рассчитать итоги по [Product Name]
, [Event ID]
и [Unit No]
.Выполнение этого запроса SELECT выглядит следующим образом
SELECT
[Product Name], [Event ID], [Unit No],
Sum(Amount) AS SumOfAmount
FROM
Transfer
GROUP BY
[Product Name], [Event ID], [Unit No];
К сожалению, этот запрос нельзя превратить в запрос UPDATE в Access, поскольку он содержит GROUP BY
.Запрос UPDATE должен соединить этот запрос с таблицей StockCount
.Полученный запрос не может быть обновлен.
Я вижу два решения этой проблемы
Заполните рабочую таблицу результатом этого запроса и обновите из этой таблицы
Обновите таблицу StockCount
программным путем, выполняя цикл по результату запроса выше.
Я покажу первый подход здесь.Сначала создайте рабочую таблицу.
twrkTotalAmount
---------------
Product Name
Event ID
Unit No
SumOfAmount
Затем очистите таблицу (она может содержать записи из предыдущего запуска)
DELETE * FROM twrkTotalAmount;
Теперь введите суммы
INSERT INTO twrkTotalAmount
([Product Name], [Event ID], [Unit No], SumOfAmount)
SELECT
[Product Name], [Event ID], [Unit No], Sum(Amount)
FROM
Transfer
GROUP BY
[Product Name], [Event ID], [Unit No];
Теперь вы можете выполнить запрос UPDATE
UPDATE
StockCount
INNER JOIN twrkTotalAmount
ON (StockCount.[Product Name] = twrkTotalAmount.[Product Name]) AND
(StockCount.[Event ID] = twrkTotalAmount.[Event ID]) AND
(StockCount.[Unit No] = twrkTotalAmount.[Unit No])
SET
StockCount.[Total Amount Taken] = [SumOfAmount];