- PR -

SQLクエリで集計

1
投稿者投稿内容
プリメーラ
会議室デビュー日: 2006/08/26
投稿数: 5
投稿日時: 2006-08-26 12:34
クエリ初心者です。
以下の集計を行うクエリをどなたか教えてください。

2つのテーブル【A】と【B】があります。
テーブル【A】は、フィールド【ID】(Key)と【NAME】から構成されています。
テーブル【B】は、フィールド【NO】(Key)と【ID】と【COST】から構成されています。

テーブル名【A】
フィールド名【ID】(Key)
フィールド名【NAME】

テーブル名【B】
フィールド名【NO】(Key)
フィールド名【ID】
フィールド名【COST】

具体的に以下のようなデータが格納されていた場合、
テーブル【A】
【ID】 【NAME】
000001 AAAAAA
000002 BBBBBB
000003 CCCCCC

テーブル【B】
【NO】 【ID】 【COST】
1 000001 10
2 000001 20
3 000002 100
4 000003 1000
5 000002 200
6 000003 2000

欲しい集計結果は以下のとおりです。
AAAAAA 30
BBBBBB 300
CCCCCC 3000

この結果を導き出すクエリを教えて頂きたく、
よろしくお願いします。
OS:Win2000
DB:Access2000
Ahf
大ベテラン
会議室デビュー日: 2006/08/16
投稿数: 172
投稿日時: 2006-08-26 12:49
内容的にはこちらよりも、DataBaseExpert掲示板のような気もします。
その前にSQLの集計について調べてみることもお勧めします。

それはさておきSQL文で行うならば

SELECT
A.NAME, SUM(B.COST) AS COST
FROM
A INNER JOIN B ON (A.ID = B.ID)
GROUP BY
A.NAME

で済みますが、もしテーブルAのNAMEフィールドで重複があるのでしたら、
サブクエリを利用する必要があると思います。Accessで行うならば、
テーブルBを集計するクエリと、その結果にテーブルAの名称をリンクして抽出
するクエリ、と2段構成にするのがいいのかな、と考えました。

#Accessで、ASを利用した別名は利用できたかどうか自信ないです・・・

[ メッセージ編集済み 編集者: Ahf 編集日時 2006-08-26 12:53 ]
プリメーラ
会議室デビュー日: 2006/08/26
投稿数: 5
投稿日時: 2006-08-26 13:09
Ahfさん、
早速のお返事ありがとうございます。
希望していた集計結果を得ることができました。
感謝致します。
今後ともよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)