プロが教えるわが家の防犯対策術!

下記のようなSQLで件数を取得したいと考えています。
テーブルBの件数がNULLの場合、差がNULLになってしまいます。
このような場合、差を0にしたいです。
どのように修正したらよいでしょうか。

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

A 回答 (4件)

Nz関数で良いかと



例:
SELECT A.ID, (A.件数-Nz(B.件数,0)) AS 差
FROM A LEFT JOIN B ON A.ID = B.ID;
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/18 16:26

蛇足ですが。



No.1の回答もNo.2の回答も
>テーブルBの件数がNULLの場合
>差を0にしたいです。
と言う条件を満たしていません。

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

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

お礼日時:2007/01/18 16:27

SELECT A.ID, IIf(IsNull(B.件数),0,A.件数-B.件数) AS 差


FROM A LEFT JOIN B ON A.ID = B.ID;
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2007/01/18 16:26

SELECT A.ID, IIf(IsNull([B].[件数]),[A].[件数],([A].[件数]-[B].[件数])) AS 差


FROM A LEFT JOIN B ON A.ID = B.ID;
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2007/01/18 16:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す