mysql中sum()函數相減結果爲空的處理

問題描述

我有兩張表,一張工資表income,消費表payment,須要SQL查詢出某一我的在本月的消費餘額。當消費表記錄爲空或者工資表記錄爲空時,兩個sum()函數相減MySQL顯示結果爲空值。函數

問題緣由

沒有作判斷空值的處理。code

解決方法

一、先把兩張表中的金額字段的默認值設爲0。 二、在運算的時候使用ifnull()函數判斷是否爲空,爲空的話設爲0值。date

SELECT
(
	SELECT
		ifnull(sum(in_amount), 0)
	FROM
		income
	WHERE
		userid = ''
	AND DATE_FORMAT(in_date, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
) - (
	SELECT
		ifnull(sum(pay_amount), 0)
	FROM
		payment
	WHERE
		userid = ''
	AND DATE_FORMAT(pay_date, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
) AS result;
相關文章
相關標籤/搜索