ОБНОВИТЬ запрос в ДОСТУП со значением AVERAGE из другой таблицы - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть две таблицы простого доступа.

Table 1 состоит из столбцов Item description и weight.Элемент description не уникален, так как weight немного отличается.

Table 2 предназначен для хранения среднего weight предметов в table 1.В этой таблице элемент description является уникальным.

Я не могу выполнить запрос UPDATE в ACCESS.В нем говорится, что запрос не включает weight как часть агрегатной функции.

Когда я пытаюсь добавить предложение GROUP BY, оно все равно не работает из-за синтаксических ошибок ..

У кого-нибудь есть идеи относительно того, в чем может быть проблема?

Вот запрос:

UPDATE TABLE2 
INNER JOIN TABLE1 ON TABLE2.DESCRIPTION = TABLE1.DESCRIPTION
SET TABLE2.WEIGHT = AVG(TABLE1.WEIGHT)

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Существует более простой способ -

. Вам необходимо создать промежуточную или промежуточную таблицу для расчета среднего значения.

Необходимо создать новую таблицу t3 из запроса- * 1005.*

select TABLE1.DESCRIPTION,AVG(TABLE1.WEIGHT) as AVG_WEIGHT    
from TABLE1 
group by TABLE1.DESCRIPTION

И тогда вы можете использовать его в запросе на обновление

  UPDATE TABLE2 
    INNER JOIN TABLE3 ON TABLE3.DESCRIPTION = TABLE2.DESCRIPTION
    SET TABLE3.WEIGHT = TABLE2.WEIGHT
0 голосов
/ 10 декабря 2018
UPDATE t2
SET t2.WEIGHT = t1.AVG_WEIGHT 
FROM TABLE2 t2
INNER JOIN (select  TABLE1.DESCRIPTION,AVG(TABLE1.WEIGHT) as AVG_WEIGHT
   from TABLE1 
  group by TABLE1.DESCRIPTION) as t1
on TABLE2.DESCRIPTION = TABLE1.DESCRIPTION
...