【问题标题】:MySQL Sum of Field Always Show NULLMySQL 字段总和始终显示 NULL
【发布时间】: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 值。

标签: mysql ifnull


【解决方案1】:

检查我的所有查询后,问题是GROUP BY WEEK (topup_time)我删除了这个,最后我得到了 ifnull 值。我不知道为什么会这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多