mysql - 如何从 mysql 中的子查询返回零而不是 null

标签 mysql sql

我创建了一个查询,当从子查询返回 null 时我想返回 0,我使用了 IFNULL 函数,但最后我仍然得到 null。下面是一个类似的查询,请帮助,不知道该怎么做。 (PS:我是用手机写的,所以mu格式可能会出现问题,抱歉)

SELECT t1.id, t1.Amount, t1.parent, 
      ( SELECT @Total := IFNULL(SUM(t2.amount), 0) AS amount FROM transactions t2 WHERE t1.`id` = t2.parent GROUP BY t2.parent ) AS AmountRepaid, 
      ( SELECT CASE WHEN CAST(SUM(t3.amount) AS DECIMAL) > CAST(t1.amount AS DECIMAL) THEN "Over" WHEN CAST(SUM(t3.amount) AS DECIMAL) = CAST(t1.amount AS DECIMAL) THEN "Complete" ELSE "Incomplete" END FROM transactions t3 WHERE t1.`id` = t3.Parent GROUP BY t3.Parent ) AS PaymentStatus 
      FROM transactions t1 WHERE t1.`Parent` IS NULL;

最佳答案

尝试使用以下方式:

SELECT t1.id, t1.Amount, t1.parent, 
       @Total := IFNULL( ( SELECT SUM(t2.amount) AS amount FROM transactions t2 WHERE t1.`id` = t2.parent GROUP BY t2.parent ), 0) AS AmountRepaid, 

关于mysql - 如何从 mysql 中的子查询返回零而不是 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24039550/

相关文章:

java - 如何从在线小程序访问 jdbc 驱动程序

mysql - 如何从具有某些条件的多对多关系中获取所有值

php - 我如何使用 php 操作 MySQL Datetime(添加小时数并转换为时区)?

mysql - sql中更新语句中的算术

java - Oracle Java SQL异常错误: ORA-0094

sql - 在 SQL WHERE ... IN 子句中使用文本文件中的术语

mysql - 从连接表中选择全部和平均值

php - 格式化查询字符串的想法

mysql - 如何在mysql中使用where exists or not exists实现相交

MySQL 选择顶行按另一行分组