2016-11-20 7 views
0

"all_code"、 "grs_amt"および "cut_amt"という名前の列を持つ「割り当て」という名前のテーブルがあります。 Gross_Value、Cut_Value、Net_Valueという結果が得られるようにSQL文を作成したい。 "cut_amt" IsNullの場合、Cut_Valueに0を代入し、割り当てられた0値または "cut_amt"で使用可能な値を使用してNet_Valueを計算します。私は次のクエリを使用しました。SQLのケースステートメント

SELECT allocation.grs_amt AS Gross_Value, 
    IfNull(allocation.cut_amt, 0) AS Cut_Value, 
    allocation.grs_amt - allocation.cut_amt AS Net_Value FROM 
    allocation 

02)しかし、希望の出力を得ることができません。私が間違っていることを理解できません。誰でも助けてくれますか?

+0

私はそのためにMySQLを使用しました – Xtern

答えて

0

あなたは式を繰り返す必要があり:

SELECT a.grs_amt AS Gross_Value, 
     coalesce(a.cut_amt, 0) AS Cut_Value, 
     (a.grs_amt - coalesce(a.cut_amt, 0)) AS Net_Value 
FROM allocation a; 

それはANSI標準ですので、私はほとんどの状況でcoalesce()を好みます。

関連する問題