【发布时间】:2017-03-03 14:03:44
【问题描述】:
我对总是显示 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)
但总是显示空结果,我需要 0(零)结果。 有人知道吗?
【问题讨论】:
-
你试过
SUM(COALESCE(topup_amount,0)了吗(虽然我看不出这会有很大的不同——我怀疑错误出在其他地方) -
至少对于声明
SUM(IFNULL(topup_amount,0)),我看不出有什么问题。应用ifnull但没有聚合后,您是否检查过结果集的样子? -
这是我正在使用的查询,SELECT (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) FROM ap_topup_request WHERE retailer_id = 34290 AND date(topup_time) >= ( DATE_ADD( CURDATE(), INTERVAL - WEEKDAY(CURDATE()) DAY ) - INTERVAL 1 WEEK ) AND date(topup_time)
-
您确定您的
where条件实际上返回非零结果集吗?例如。ifnull在处理空集时返回null。 -
当然,我想我找到了解决方案,因为按周语法分组。删除那个之后,最后我得到了 ifnull 值。