1

「table1」と呼ばれる私のテーブルは次のようになります。

エリア | 所有者 | 番号 ID | 平均

1200 | Fed_G | 998 | 1400

1220 | プライベート | 1001 | 1600

1220 | Local_G | 1001 | 1430

1220 | Prov_G | 1001 | 1560年

1220 | プライベート | 1674年 | 1845年

1450年 | Prov_G | 1874年 | 1982年

理想的には、次の場合に平均列のいくつかの行を合計することです。

次に、それを取得して既存のテーブルに追加し、Owner フィールドを「ALL」に設定します。

Access を使い始めたばかりなので、これを行う方法がよくわかりません。これは私の恐ろしい試みです。

SELECT ind.Area, ind.Owner, ind.numberid, 
(SELECT SUM([Average]) FROM   [table1] 
WHERE [numberid]=ind.numberid) AS Average
FROM [table1] AS ind
WHERE (((ind.numberid)>="1000" And (ind.numberid)<"10000") AND ((ind.Area)="1220"))

私が何をすべきかを教えてくれる人はいますか?私はSQL構文に慣れていません。

比較する変数として「ind」を使用しようとしました。

これまでのところ、列名は表示されますが、出力はありません。

4

2 に答える 2

2

私はあなたが何を望んでいるかを理解しているかどうか、まだ確信が持てません。このクエリを提供し、結果が希望どおりかどうか、または希望とどのように異なるかを教えてください。

SELECT
    t.Area,
    'ALL' AS Owner,
    t.Numberid,
    Sum(t.Average) AS SumOfAverage
FROM table1 AS t
GROUP BY t.Area, 'ALL', t.Numberid;

サンプル データを使用すると、そのクエリでこの結果セットが得られます。

Area Owner Numberid SumOfAverage
1200 ALL        998         1400
1220 ALL       1001         4590
1220 ALL       1674         1845
1450 ALL       1874         1982
于 2012-05-02T15:08:24.983 に答える
1

質問の文言を改善していただければ、おそらくより良い回答ができると思います。

averageただし、 <> には、列とグループ化 numberidと列を選択する必要がありAreaます。所有者フィールドは <> であるため、私が書いているこのクエリでは問題ではないと思います。

SELECT numberid, area, SUM(average)
FROM table1
WHERE owner = 'your-desired-owner-equal-to-all'
GROUP BY numberid, area
ORDER BY numberid, area
于 2012-05-02T13:54:51.123 に答える