質問: 顧客管理システムの作成中で、SQLで困っています。。 やりたいことは、全ユーザを対象として対応件数を集計をする際に、 1件も登録していないユーザがいた場合も0件として表示させたいです。 取得したいイメージ | ユーザID | 対応件数の集計 | | --- | --- | | 1000 | 3 | | 1001 | 3 | | 1002 | 0 | | 1003 | 4 | | 1004 | 1 | GROUP BY を使い集計したのですが、そのユーザが表示されずにつまづいています。 集計結果がNULLだった場合は、0としてカウントしたい場合はどのようにすればいいでしょうか。 | ユーザID | 対応件数の集計 | | --- | --- | | 1000 | 3 | | 1001 | 3 | | 1003 | 4 | | 1004 | 1 | ### テーブル(計3点) 1userテーブル | ユーザID | 名前 | | --- | --- | | 1000 | たなかたろう | | 1001 | さとうはなこ | | 1002 | きむらじろう | | 1003 | なかむらしんたろう | | 1004 | ささきけんいち | 2category | カテゴリID | 問い合わせ内容 | | --- | --- | | 1 | 店舗からの問い合わせ | | 2 | ネットから問い合わせ | | 3 | 社内から問い合わせ | 3operation | カテゴリID | 問い合わせ内容 | ユーザID | 名前 | | --- | --- | --- | --- | | 1 | 店舗からの問い合わせ | 1000 | たなかたろう | | 1 | 店舗からの問い合わせ | 1000 | たなかたろう | | 1 | 店舗からの問い合わせ | 1001 | さとうはなこ | | 2 | ネットから問い合わせ | 1001 | さとうはなこ | | 2 | ネットから問い合わせ | 1000 | たなかたろう | | 2 | ネットから問い合わせ | 1003 | なかむらしんたろう | | 2 | ネットから問い合わせ | 1003 | なかむらしんたろう | | 2 | ネットから問い合わせ | 1003 | なかむらしんたろう | | 3 | 社内から問い合わせ | 1001 | さとうはなこ | | 3 | 社内から問い合わせ | 1003 | なかむらしんたろう | | 3 | 社内から問い合わせ | 1004 | ささきけんいち |
回答: SQLは方言がありますから、データベースが何かは明示した方がいいです。 Oracle ですとNVLを使います。 SELECT NVL(COLUMN_NAME1, 0) AS COLUMN_NAME1 FROM TABLE_NAME1 ;