• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:値がNullの場合のクエリーの条件)

値がNullの場合のクエリーの条件

このQ&Aのポイント
  • AとBのテーブルを結合させて、BにあるIDを集計する際に、値がNullのIDも表示させる方法を知りたい。
  • クエリーに条件を追加することで、値がNullのIDも表示させることができる。
  • 具体的な条件として、IsNull関数を使用してCountが0の場合も表示させるようにする。

質問者が選んだベストアンサー

  • ベストアンサー
  • zzzzzz
  • ベストアンサー率61% (70/113)
回答No.2

すみません。外部結合の順序を読み違えて書いています。#1は無視してください。 HAVING句が使えないことに関しては同様です。 「値がないIDも表示」が「AListに値がないIDも表示」という意味でしたら、外部結合をLEFT JOINにしてください。 この場合はSELECTおよびGROUP BYする列に関して、AList.CidをBList.Cidに変えてください。 この場合にはBList.Cidに現れないIDについては表示されません。 AList.CidかBList.Cidのどちらかに現れるIDについて全て表示、という場合には左右の外部結合で抽出した結果をUNIONで結合してください。

t_n_t
質問者

お礼

回答ありがとうございました。 Access、とくにクエリーやVBAはまだまだ初心者でして大変助かりました。 さっそく明日、試したいと思います。

その他の回答 (1)

  • zzzzzz
  • ベストアンサー率61% (70/113)
回答No.1

Access/Jet-SQLと判断して回答します。 HAVING句は集計後の表に関する条件を設定するものなので、この意味では使用できません。 「値がないID」が「BList.CidがNULLのものについてもまとめる」という意味でしたら、 Count(BList.Cid)をCOUNT(*)に変更してください。 (Count(BList.Cid)は、BList.CidがNULLでないものの件数を数える、という意味です) 「値がないID」が「BList表には現れないIDについても結果を表示したい」ということでしたら、 外部結合のやり方から考え直す必要があります。 この場合は、「どのIDを結果に含めたいのか」を書いてください。 なお、BList.Cidの値で、AList.Cidには現れないもののことを考慮するのなら、 SELECTするのはAList.CidよりもBList.Cidとした方が安全です。(結果が見にくくなる可能性を排除できます)

関連するQ&A

専門家に質問してみよう