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 の Avg RSSI 列の平均値を個別の MIU ID ごとに取得し、各値を Table2 の適切な行に挿入することだけです。

注記
Table2 には AvgNum という名前の列があり、これを使用する方が簡単な場合は、MeanNum 列に入力する必要があるのと同じ数値を取得するために平均を使用できます。

私がやろうとしていることを 2 つのステップで実行する方法は知っていますが、1 つの SQL ステートメントで実行できるようにしたいと考えています。

4

1 に答える 1

2

編集: 以下のコードは MS-Access/Jet では機能しません。このリンクを参照してください。

操作は更新可能なクエリを使用する必要があります。(エラー 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 
于 2011-09-06T20:21:08.500 に答える