我有一個SQL查詢,從三列返回總表的,這是我的查詢:如何查詢的結果設置爲零,如果其條件爲假
SELECT c.*,
(select sum(t.incoming) - sum(t.outgoing) from transactions t where t.client_id = c.id and currency = 'Dollar') +
(select sum(t.equal_to_dollar) from transactions t where t.incoming != 0 and currency != 'Dollar' and t.client_id = c.id) -
(select sum(t.equal_to_dollar) from transactions t where t.outgoing != 0 and currency != 'Dollar' and t.client_id = c.id)
as total from clients c
我的問題是,當一個第二個和第三個(內部選擇)條件不符合它會返回空值,並導致整個選擇返回null。因爲空值不能與任何值相加或相減。
我想知道是否有任何方法來將其條件評估爲false的查詢結果設置爲零,因此它不會影響整個查詢,並且查詢將返回滿足where子句中條件的那些部分的值。
我不知道當結果很重要時它是計算價值的好方法,它應該如此精確?
,我要感謝您在您的幫助:)
的可能的複製[選擇一列如果對方是空](http://stackoverflow.com/questions/5697942/select-one-column (如果其他是空)(或者[如果字段在MySQL中爲null,則返回0](http://stackoverflow.com/questions/3997327/return-0-if-field-is-null-in -mysql)) –