- 締切済み
それぞれの合計を横並びに表示するには
1つtableの中に ・営業所 ・販売車種メーカー ・販売日 といった項目があるとき、 縦に営業所。横に、販売車種メーカー別の合計を出すにはどのようにしたら良いでしょうか? |トヨタ| 日産 | 本田 |マツダ|スバル| A営業所| 15 | 5 | 8 | 1 | 3 | B営業所| 7 | 10 | 7 | 5 | 5 | C営業所| 20 | 14 | 11 | 8 | 2 |
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
RDBMSは、ここのカテゴリ通りPostgreSQLですか? 使用しているバージョンは、何ですか? >横に、販売車種メーカー別の合計 「合計」とは、行数ということですか? 「横」とは、最大、何列くらいになるのですか? 横への広がり(列数)が、5個とか10個とか固定でないと、SQLだけで実装するのは困難です。 列数を固定にすれば、GROUP BY、CASE、COUNTまたはSUMの組み合わせで実装できると思います。 使用RDBMS名、バージョンが不明なので、これ以上は回答しません。
お礼
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 営業所 実際に確認しました。ありがとうございました。