• ベストアンサー

AccessにおいてフィールドがNULLの値を0に変換するには

下記のようなSQLで件数を取得したいと考えています。 テーブルBの件数がNULLの場合、差がNULLになってしまいます。 このような場合、差を0にしたいです。 どのように修正したらよいでしょうか。 SELECT A.ID, (A.件数-B.件数) AS 差 FROM A LEFT JOIN B ON A.ID = B.ID;

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

  • ベストアンサー
  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.2

Nz関数で良いかと 例: SELECT A.ID, (A.件数-Nz(B.件数,0)) AS 差 FROM A LEFT JOIN B ON A.ID = B.ID;

ton_jiru
質問者

お礼

ありがとうございます。 シンプルでよいですね!

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.4

蛇足ですが。 No.1の回答もNo.2の回答も >テーブルBの件数がNULLの場合 >差を0にしたいです。 と言う条件を満たしていません。 もし「テーブルBの件数がNULLの場合、差ではなく、テーブルBの件数を0として扱い、差はテーブルAの件数にしたい」と言うなら、No.1の回答もNo.2の回答も正解ですが、残念ながらそうではありません。

ton_jiru
質問者

お礼

曖昧な説明ですみません。 No.1,2も正解の要件です。

すると、全ての回答が全文表示されます。
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.3

SELECT A.ID, IIf(IsNull(B.件数),0,A.件数-B.件数) AS 差 FROM A LEFT JOIN B ON A.ID = B.ID;

ton_jiru
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。
  • JAWS55
  • ベストアンサー率38% (176/452)
回答No.1

SELECT A.ID, IIf(IsNull([B].[件数]),[A].[件数],([A].[件数]-[B].[件数])) AS 差 FROM A LEFT JOIN B ON A.ID = B.ID;

ton_jiru
質問者

お礼

ありがとうございます!

すると、全ての回答が全文表示されます。

関連するQ&A