アプリ版:「スタンプのみでお礼する」機能のリリースについて

DB2のSQLについて質問があります。
以下の構文は数量という項目が??だったらそのまま数量の値を違ったら「0」を返すというSQLですが、
??の部分に「数量という項目が数値だった場合」としたいです。
理由は、親子のテーブルで外部結合をしているのですが、子テーブルの数量と親テーブルの数量を足し算した結果を出力するというSQL「(親.数量 + 子.数量) as 数量」なのです。その為、子テーブルデータが存在しない場合、「子.数量」にnullが返ってきますので以下のSQLを使用して数値だったらとしたいのですが、「??」に数値だったらと入れることができるのでしょうか?
case 数量 when ?? then 数量 else 0 end

また、他に方法があれば、ご教授お願いします。

A 回答 (2件)

こんにちは。



いや・・・、CASEじゃなくて、
SELECT (親.数量 + COALESCE(子.数量, 0)) as 数量
FROM ~
でいいんじゃないかと・・・。
(^^ゞ
    • good
    • 0
この回答へのお礼

できました!!
ホントにありがとうございますm(_ _)m
関数がなにがあるかすらわからない未熟者です。
ありがとうございました。

お礼日時:2004/12/08 20:34

こんにちは。



子テーブルの数量が数値だったら・・・。
よりも、
子テーブルの数量がNULLだったら0にして合計する方がすっきりしてると思います・・・。

ほかに理由があるのなら別ですが・・・。
(^^ゞ

この回答への補足

ご回答ありがとうございます。
すいません。全然理由はないです。。
NULLだったら0にするという方法は
case 数量 when ?? then 数量 else 0 end
??の部分が NULL と指定した場合はエラーになってしまいます。
どんな方法があるのでしょうか?
ご教授宜しくお願い致します。

補足日時:2004/12/08 17:07
    • good
    • 0

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

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