我正在尝试将每个MIUID的平均值插入表中。相关表格和栏目信息如下:
表1. [MIU ID],表1. [平均RSSI]
和
Table2.MIUID,Table2.MeanNum
如果我只是使用select语句,我会执行以下操作:
Select DISTINCT Table1.[MIU ID], Avg(Table1.[Avg RSSI]) as MeanNum
From Table1
GROUP BY Table1.[MIU ID]
但是,我需要将此信息插入Table2中的列。我已经尝试了以下和以下的变体以及我得到的错误是它不会让我使用Group By,另一个错误说MeanNum不是聚合函数的一部分。
UPDATE Table2
INNER JOIN Table1
ON Table2.MIUID = Table1.[MIU ID]
SET Table2.MeanNum = Avg([Table1].[Avg RSSI]);
我尝试过的另一个问题是:
UPDATE Table2
SET Table2.MeanNum = Avg([Table1].[Avg RSSI])
WHERE Table2.MIUID = Table1.[MIU ID]
Group By [Table1].[Avg RSSI]
摘要
重申我要做的就是获取Table1中Avg RSSI列的平均值,以获得每个不同的MIU ID,并将每个值插入表2中的相应行。
注意
Table2中有一个名为AvgNum的列可能是平均值,如果使用它会更容易获得需要进入MeanNum列的相同数字。
我知道如何按照两个步骤做我想做的事情,但是我希望能够在一个sql语句中做到这一点。
答案 0 :(得分:2)
修改:以下代码无法在MS-Access / Jet中使用。看到这个链接:
Operation must use an updatable query. (Error 3073) Microsoft Access
原始回答:
您可以在子查询中使用原始SELECT查询并加入其中。没有语法检查,我比MS-Access更熟悉T-SQL,但是像:
UPDATE
t2
SET
t2.MeanNum = sub.MeanNum
From
Table2 t2
INNER JOIN
(
Select DISTINCT
Table1.[MIU ID],
Avg(Table1.[Avg RSSI] as MeanNum
From
Table1
GROUP BY
Table1.[MIU ID]
) sub
ON sub.[MIU ID] = t2.MIUID