• 締切済み

それぞれの合計を横並びに表示するには

1つtableの中に ・営業所 ・販売車種メーカー ・販売日 といった項目があるとき、 縦に営業所。横に、販売車種メーカー別の合計を出すにはどのようにしたら良いでしょうか?     |トヨタ| 日産 | 本田 |マツダ|スバル| A営業所|  15 |  5 |  8 |  1 |  3 | B営業所|  7 |  10 |  7 |  5 |  5 | C営業所|  20 |  14 | 11 |  8 |  2 |

みんなの回答

回答No.1

RDBMSは、ここのカテゴリ通りPostgreSQLですか? 使用しているバージョンは、何ですか? >横に、販売車種メーカー別の合計 「合計」とは、行数ということですか? 「横」とは、最大、何列くらいになるのですか? 横への広がり(列数)が、5個とか10個とか固定でないと、SQLだけで実装するのは困難です。 列数を固定にすれば、GROUP BY、CASE、COUNTまたはSUMの組み合わせで実装できると思います。 使用RDBMS名、バージョンが不明なので、これ以上は回答しません。

ramen41201
質問者

お礼

chukenkenkouさんの回答にSUMが書かれており、それで気づきました。 ACCESSにある、TRANSFORM Count/PIVOTが使えなくて焦っておりました。 ちなみにPostgreSQLのバージョンは「8.3.3」です。 SELECT  営業所  , sum(CASE WHEN 販売車種メーカー = 'トヨタ' THEN 1 ELSE 0 END) AS 'トヨタ'  , sum(CASE WHEN 販売車種メーカー = '日産' THEN 1 ELSE 0 END) AS '日産'  , sum(CASE WHEN 販売車種メーカー = '本田' THEN 1 ELSE 0 END) AS '本田'  , sum(CASE WHEN 販売車種メーカー = 'マツダ' THEN 1 ELSE 0 END) AS 'マツダ'  , sum(CASE WHEN 販売車種メーカー = 'スバル' THEN 1 ELSE 0 END) AS 'スバル' FROM 販売管理テーブル GROUP BY 営業所 ORDER BY 営業所 実際に確認しました。ありがとうございました。