1

我正在尝试获取插入表中的每个 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 中每个不同 MIU ID 的 Avg RSSI 列的平均值,并将每个值插入到 Table2 中的相应行中。

注意
表 2 中有一个名为 AvgNum 的列,如果使用它会更容易,它可以取平均值以获得需要进入 MeanNum 列的相同数字。

我知道如何分两步做我想做的事情,但是我希望能够在一个 sql 语句中完成。

4

1 回答 1

2

编辑:下面的代码在 MS-Access/Jet 中不起作用。请参阅此链接:

操作必须使用可更新查询。(错误 3073)Microsoft Access

原答案:

您可以在子查询中使用原始 SELECT 查询并加入它。没有检查语法,我对 T-SQL 比对 MS-Access 更熟悉,但类似于:

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 
于 2011-09-06T20:21:08.500 回答