mysql - 使用 mysql group by 和 where by date 返回计数 0

标签 mysql

我想创建一个查询结果数据,如下所示:

enter image description here

但是当我插入 where 子句时,列 name 只是从列 m_ccode 中得出一些值:

enter image description here

问:如果插入 where 子句,如何保留所有 name 列值?

这里是工作 fiddle :

http://sqlfiddle.com/#!9/687776/10

最佳答案

在 on 子句中使用 MONTH(t.date) = '10' AND YEAR(t.date) = '2018' 条件,如下所示

demo

SELECT ccode.name,IFNULL(count(DISTINCT u.username),0) as total_active
,(count(DISTINCT u.username) - count(DISTINCT t.username)) as total_non_active
from m_ccode as ccode
left join m_user as u on u.ccode = ccode.id
left join t_safety_act t on t.username = u.username
and MONTH(t.date) = '10' AND YEAR(t.date) = '2018' group by ccode.id;

关于mysql - 使用 mysql group by 和 where by date 返回计数 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52817026/

相关文章:

mysql - SQL - 如何选择日期是星期一还是表中的第一个日期?

MySQL (MariaDB) while 循环

Mysql 查询获取酒店预订房间的未预订日期

mysql - SQL 中类似枢轴的计算

java - 生成格式错误的字符串以进行测试

java - 将 DATE 插入 MYSQL 数据库..将值从 Android 发送到 PHP

mysql - Laravel Schema onDelete设置默认值

mysql - 如何对字段求和并创建两个具有不同 id 的不同字段

mysql - 根据列中生日与当前日期的差异,根据年龄从数据库中选择记录

mysql - 如何将 LIKE 与列名一起使用 (2)