QA@IT

SQLサーバで同じ条件がある場合の集計

3273 PV

初めて質問させて頂きます。

SQLにて下記のことを実現したいと思っております。

テーブル:お客様情報
SEQ お客様番号 注文番号  年齢層  単価 
001 11111111  00001   大人   100
002 11111111  00002   大人   100
003 11111111  00003   子供   50
004 11111111  00004   子供   50
005 11111122  00005   大人   100
006 11111122  00006   子供   50

テーブル:地域別
お客様番号   地域  都道府県
11111111   関東   東京
11111122   関西   京都

このような二つのテーブルを集計(単価)と結合して
下記のようなデータを取得したいのですが
お客様番号 年齢層  価格   地域  都道府県
11111111  大人   200  関東   東京
11111111  子供   100  関東   東京
11111122  大人   100   関西   京都
11111122  子供   50   関西   京都

年齢層が大人の場合、単価を集計し、
子供の場合でも同様に集計するというCASE文での分岐ではなく、
同じ注文番号に対して、同じ年齢層は集計するというようなSQLで
組みたいと思っております。

どのようにやるのが良いのか御教授頂けますよう宜しくお願いします。

分かりずらい文になっていましたらすいません。

回答

Joinの部分は置いておいてお客様情報から提示されている結果を取得する部分は

Select お客様番号, 年齢層, Sum(単価) As 価格
From お客様情報
Group By お客様番号, 年齢層

でよいかと思います。

同じ注文番号に対して、同じ年齢層は集計するというようなSQL

同じ注文番号のデータがありませんがどのような結果を想定していますでしょうか?

編集 履歴 (0)
  • 一度の注文で複数件注文がある場合に
    注文番号が複数になってしまう仕様なので
    そこは特に気にしなくて大丈夫でした。

    SELECT文について完成しました。
    なぜか難しく考えすぎていたようです。
    ありがとうございました。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。