5

Access テーブルが 2 つあります。1 つのテーブル (table1) には一意のフィールド MyID があり、別のテーブル (table2) には MyID を持つ複数の行と別の列 Data があります。MyID のすべての値が選択され、table2 のデータから平均化され、別のフィールド Avg の下の MyID 行で更新される foreach に似た SQL ステートメントを書きたいと思います。

**Table1**
MyID
ID1
ID2
ID3  

**Table2**
MyID   Data   Mon
ID2    10     Jan
ID2    20     Feb
ID1    10     Jan
ID3    30     Mar
ID1    30     Mar

次のような結果が期待されます。

**Table1**
MyID    Avg
ID1     20
ID2     15
ID3     30

SQLでこれを行うより良い方法があるかもしれませんが、現在はわかりません。

4

2 に答える 2

5
UPDATE  table1
        INNER JOIN
        (
            SELECT Data1, AVG(columnName) avgCol
            FROM table2
            GROUP BY Data1
        ) b ON table1.MyID = b.Data
SET     table1.avgColumnName = b.avgCol
于 2012-11-15T14:34:32.833 に答える
0

これは、クエリとして MS Access でトリックを行いますが、テーブルへの更新は行いません。

SELECT Table2.[MyID], Avg(Table2.[Data]) AS [AVG]
FROM Table2
GROUP BY Table2.[MyID]
于 2012-11-21T12:50:05.303 に答える