文档章节

mysql中sum()函数相减结果为空的处理

Ethel_oo
 Ethel_oo
发布于 2018/04/20 21:22
字数 186
阅读 82
收藏 1

问题描述

我有两张表,一张工资表income,消费表payment,需要SQL查询出某一个人在本月的消费余额。当消费表记录为空或者工资表记录为空时,两个sum()函数相减MySQL显示结果为空值。

问题原因

没有做判断空值的处理。

解决方法

1、先把两张表中的金额字段的默认值设为0。 2、在运算的时候使用ifnull()函数判断是否为空,为空的话设为0值。

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;

© 著作权归作者所有

共有 人打赏支持
Ethel_oo
粉丝 4
博文 22
码字总数 11096
作品 0
蚌埠
程序员
私信 提问
SQL语句中SUM函数返回NULL的解决办法

SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL。 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例...

红薯
2009/02/12
4.4K
4
关于SQL语句中SUM函数返回NULL的解决办法

SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL。 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例...

Zhao-Qian
2015/06/29
0
0
Mysql日期函数

MySQL 为日期增加一个时间间隔:dateadd() set @dt = now(); select dateadd(@dt , interval 1 day); - 加1天 select dateadd(@dt , interval 1 hour); -加1小时 select dateadd(@dt , inter......

小城故事_
2016/02/26
114
0
mysql加减时间-函数-时间加减

mysql加减时间-函数-时间加减 1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day); - 加1天 select date_add(@dt, interval 1 hour); -加......

技术小胖子
2017/11/10
0
0
SQL面试:知识点与技巧

【写在前面】 作为一个无推广的小博主,之前的文章收到了很多读者的热爱,在此多谢大家的支持。最近发现国内剽窃现象很严重啊……如果您对我的文章有兴趣,想要转载请先经过我的同意,要不然...

数据女侠
2017/09/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
1
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
2
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
3
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
3
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部