- ベストアンサー
NULLを 0 として計算する方法は?
NULL は 0 として扱って欲しい時はどうすればよいのでしょうか? select (単価 * 数量 - 値引) as 小計 from 注文 値引がNULLだと小計が全てNULLになってしまいます。 Access関数のNz(値引)のようなのあるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
案1 SELECT (単価 * 数量 - IF(値引,値引,'0')) as 小計 from 注文; 案2 create table の時に、 default 0 を入れる。
その他の回答 (2)
- masayuki0511
- ベストアンサー率46% (14/30)
回答No.3
標準的なSQLの関数で、IFNULLというのがあります。 IFNULL(x,y) のような形で書きます。 x が NULL なら、y をそれ以外は x を返します。 select (単価 * 数量 - IFNULL(値引, 0)) as 小計 from 注文 と書けば、O.K.です。 4.0 で試しています。
質問者
お礼
ありがとうございます。 やっぱり標準的な関数が良いですね!
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.1
NZ()で行けると思います。 select (NZ(単価,0) * NZ(数量,0) - NZ(値引,0)) as 小計 from 注文 でどうでしょう?
質問者
お礼
ダメでした。 どうしてか、わかりませんでした。 Check the manual that corresponds to your MySQL server version for the right syntax to use near '(値引 ... でも、NZ()というのもあるんですね。 ありがとうございます。
お礼
ありがとうございます。できました! やっぱり案2にするのが正しいんですよね。なるべくスッキリ簡単な構造にしたい気持ちがあったので...