2012-05-02 5 views
1

「table1」と言うテーブルは、次のようになります。MS Access SQLでは、いくつかのフィールドを合計して値を比較します。

エリア|オーナー| Numberid |平均

1200 | Fed_G | 998 | 1400

1220 | Priv | 1001 | 1600

1220 | Local_G | 1001 | 1430

1220 | Prov_G | 1001 | 1560

1220 | Priv | 1674 | 1845

1450 | Prov_G | 1874 | 1982

1.それらは同じnumberidを持っています(3つの行にすべてnumberid = 1000があったとすると、それらの平均は一緒に加算されます)。 ) 2.Area = 1220

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

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"を比較する変数として使用しようとしました。

これまでのところ、列名は出力されません。

+0

あなたも試しました!乾杯。 – rvphx

+0

@ HansUpはサンプルデータを追加し、出力の説明を与えました。ありがとう! – BadgerBeaz

+1

テーブル構造だけでなく、希望する出力も追加できますか?また、 "面積"と "NumberID"のテキストまたは整数はありますか? – GarethD

答えて

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 
1

あなたの質問の表現を改善すれば、おそらく私はあなたに良い答えを与えることができます。

ただし、averageカラムとgroup bynumberidAreaカラムを選択する必要があります。所有者フィールドが<ですので>私はそれが私が書いているこのクエリでは重要ではありません推測:

SELECT numberid, area, SUM(average) 
FROM table1 
WHERE owner = 'your-desired-owner-equal-to-all' 
GROUP BY numberid, area 
ORDER BY numberid, area 
+0

申し訳ありませんが、私が間違って説明したことを教えてください。これまでの助けてくれてありがとう! – BadgerBeaz

+0

@fonzyよろしくお願いします。あなたの質問にいくつかのサンプルデータを入れ、サンプルデータに基づいてクエリの結果を教えてください。 –

+0

質問に情報を追加しようとしましたが、クエリを実行するときに列名は取得されますが、テーブルに情報はありません。ありがとう。 – BadgerBeaz

関連する問題