iT邦幫忙

0

有關MYSQL SUM 加總時遇到 NULL,無法加總

請問各位大大
程式內 收費資料.清理費+SUM(收費金額) 這段指令,
當清理費=100,而SUM(收費金額)=NULL時,
出來的結果是空白,而不是100,
請問該如何處理才會得到100,謝謝

整段程式如下:
With MYRS
'.LockType = adLockPessimistic
.Source = "SELECT 會員,收費資料.清理費+SUM(收費金額)" & _
" FROM 收費資料 LEFT JOIN 收費明細 ON 收費資料.收費編號=收費明細.收費編號 LEFT JOIN 會員名冊 ON 收費資料.會員編號=會員名冊.會員編號 " & _
" WHERE " & 條件 & " GROUP BY 收費資料.會員編號 ORDER BY 路線編號"
.ActiveConnection = MYCON '指定所使用的Connection物件
.Open
End With

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
神Q超人
iT邦研究生 5 級 ‧ 2018-02-26 23:53:23
最佳解答

可以用IFNULL(a,b)
意思是,如果a為null就回傳b,如果a不是null就回傳a

所以把收費資料.清理費+SUM(收費金額)改成以下
收費資料.清理費+IFNULL(SUM(收費金額),0)應該就可以了

ltc09 iT邦研究生 5 級 ‧ 2018-02-27 08:37:54 檢舉

感謝您

建議使用 SUM(IFNULL(收費金額,0)) 會比較好

神Q超人 iT邦研究生 5 級 ‧ 2018-02-27 14:18:28 檢舉

謝謝大大的提醒,
的確SUM出現NULL的情況就是原本該欄位的資料就是NULL,
所以在SUM函式中先將該欄位的值變成0會比較好!
依大大的建議改成收費資料.清理費+SUM(IFNULL(收費金額,0))

0
richardsuma
iT邦大師 1 級 ‧ 2018-02-26 23:55:19

google "mysql null to 0"

ltc09 iT邦研究生 5 級 ‧ 2018-02-27 08:38:21 檢舉

謝謝 :)

0
I code so I am
iT邦高手 1 級 ‧ 2018-02-27 07:17:55

Where 加一條件 『收費金額 IS NOT NULL』

ltc09 iT邦研究生 5 級 ‧ 2018-02-27 08:38:29 檢舉

謝謝 :)

我要發表回答

立即登入回答