重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

教えてください。
下記のようなデータを
結果のようなデータにもっていくには
アクセスでどのようなSQLを書いたらいいのでしょうか?

groupbyで人とバスケットを両方やってしまうと、
結果としては
Aさん バスケット1 6個 850円
Aさん バスケット2 2個 900円
Bさん バスケット1  5個 1400円
Bさん バスケット3  1個 300円
となってしまいます。

おそらく、副問い合わせをつかって
2段階にわけないとできないのかな?と思うところまではわかったのですが、
構文がよくわかりません・・・。

宜しくお願いします。



人   バスケット数 個数 金額
Aさん バスケット1  1個 100円
Aさん バスケット1  3個 300円
Aさん バスケット1  2個 450円
Aさん バスケット2  2個 900円
Bさん バスケット1  5個 1400円
Bさん バスケット3  1個 300円

<結果>

Aさん バスケット2つ 8個 1750円
Bさん バスケット2つ 6個 1700円

A 回答 (1件)

仮にテーブル名をT1とすると



SELECT
人,
COUNT(*),
SUM(個数),
SUM(金額)
FROM
(SELECT
T1.人 AS 人,
T1.バスケット数 AS バスケット数,
SUM(T1.個数) AS 個数,
SUM(T1.金額) AS 金額
FROM T1
GROUP BY T1.人, T1.バスケット数)
GROUP BY 人

Accessだと「COUNT(DISTINCT バスケット数)」という構文が使えないので
一度「人+バスケット数」で集計して、それを再度「人」で集計します。
    • good
    • 0
この回答へのお礼

真にありがとうございました!
すぐできました^^

お礼日時:2011/01/11 14:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す