2017-08-11 6 views
0
CASE WHEN (D.BUYQ>0 AND D.SELLQ>0 AND D.series_expiry='2050-01-01') then 
sum(D.stt_INTRA_buy*least(D.buyq,D.SELLQ)*D.buyavg)+sum(D.stt_buy*(D.buyq-least(D.buyq,D.SELLQ))*D.buyavg) 
ELSE 
sum(D.stt_buy*D.buyq*D.buyavg) 
END) as xsttbuy 

True条件を満たすデータベースにデータが存在しても、常にケース条件が保持され、他にも入ります。ケース複数の条件をmysqlに設定した場合

+0

これは真であるが偽である場合のデータセットの例を1つ与えることはできますか? –

+0

あなたの質問を更新するあなたのテーブルscheda ..適切なデータサンプルと期待される結果,,, – scaisEdge

答えて

0

それぞれの結果行ではなく、各データベース行にテストを適用することを意味すると思います。その場合は、ケースを合計に移動する必要があります。

SUM(
    CASE WHEN (D.BUYQ>0 AND D.SELLQ>0 AND D.series_expiry='2050-01-01') THEN 
     D.stt_INTRA_buy*LEAST(D.buyq,D.SELLQ)*D.buyavg)+D.stt_buy*(D.buyq-LEAST(D.buyq,D.SELLQ))*D.buyavg 
    ELSE 
     D.stt_buy*D.buyq*D.buyavg 
    END 
) AS xsttbuy 
関連する問題