2016-10-21 8 views
0

私は常にnullを表示するフィールドの合計に問題があり、 は、MySQLの合計

(SUM(IFNULL(topup_amount,0))) AS total, 
SUM(topup_amount) AS total2, 
COALESCE(SUM(topup_amount),110), 
IFNULL(SUM(topup_amount), 0), 
COALESCE(SUM(topup_amount), 0) 

しかし、いつもはNULLという結果を示して、私は(0を必要としますゼロ)結果。 誰もがこれについて知っていますか?

+0

(SUM(COLLESCE(topup_amount、0) 'を試してみましたが、これは大きな違いがあるとは思えません - エラーが他の場所にあると思われます) – Strawberry

+0

少なくともSUM IFNULL(topup_amount、0)) '' ifnull'を適用した後に集計をしなかった場合の結果セットの様子を確認しましたか? – PhillipD

+0

これは私が使用しているクエリ、TOTAL2 AS SELECT(SUM(IFNULL(topup_amount、0)))AS合計、 \t \t \t \t SUM(topup_amount)、 \t \t \t \t COALESCE(SUM(topup_amount)であります、110)、 IFNULL(SUM(topup_amount)、0)、 COALESCE(SUM(topup_amount)、0) \t \t \t \t \t \t \t ap_topup_request \tFROM\t \t \t \t \t retailer_id = 34290 \t \t \tと日付(topup_time)> =( \t \t \t \t DATE_ADD( \t \t \t \t \t CURDATE()、 \t \t \t \t \t INTERVAL - WEEKDAY( CURDATE())DAY \t \t \t \t) - INTERVAL 1週間 \t \t \t) \t \t \tと日付(topup_time) Bobby

答えて

0

質問をすべて確認した後、問題はGROUP BY WEEK(topup_time)です。 私はこの1つを削除しました、そして最後に私はifnull値を取得します。なぜそれが起こるのか分からない。