2012-03-27 11 views
0

列にNULLを持たず、0を表示します。SQL Server - ISNULLが更新クエリで機能しない

TABLE1 
ClientID  OrderCount 
1    NULL 
2    NULL 
3    NULL 
4    NULL 


Table2 
ClientID  OrderCount 
1    2 
3    4 
4    6 

注:両方のテーブルのOrderCount列がINTデータ型です

は、次の2つの表を考えます。

ClientID  OrderCount 
1    2 
2    NULL 
3    4 
4    6 

だから、私は自分自身に考えた - "明らかに、私はNULLIFなくISNULLを使用しなければならない" ので、私はそれを逆に:私はTABLE1を見てみると

UPDATE TABLE1 
SET OrderCount = ISNULL(TABLE2.OrderCount,0) 
FROM TABLE1 
INNER JOIN TABLE2 ON TABLE2.ClientID = TABLE1.CLIENTID 

は、私は、これは参照してください。同じ結果。

私はここで間違っていますか?列にNULLではなく0を取得するにはどうすればよいですか?

答えて

6

INNER JOINではなく、LEFT JOINが必要です。一致するClientIDのないレコードは、クエリでも触れられません。

+0

感謝を登録しよう。それがそれを解決しました。 – mikebmassey

0

あなたの参加はおそらく行を除外しています。

2

あなたは文句を言わない2と行がLEFTに置き換え含まINNER JOINをが、あなたの結果が設定されますので、表2にクライアントID 2を持っていない使用しているが

関連する問題