如果没有找到特定日期的记录,我想显示0

时间:2016-04-18 07:28:46

标签: mysql

在mysql中我创建了一个查询,我希望获得每个日期的最后一个月数据,如果没有找到特定日期的记录,那么它应该显示为0.

我的mysql查询是

  

选择SUM(testviewaudit.action = 1)AS视图,   来自testviewaudit内部联接ttd的DATE(testviewaudit.datetime)   testviewaudit.testid = tmtests.tsid其中DATE(testviewaudit.datetime)   现在(现在) - 间隔30天和现在()分组   DATE(testviewaudit.datetime)按DATE排序(testviewaudit.datetime)   ASC;

我也用过这个但没有成功

  

选择ifnull(SUM(testviewaudit.action = 1),0)AS视图,   来自testviewaudit内部联接ttd的DATE(testviewaudit.datetime)   testviewaudit.testid = tmtests.tsid其中DATE(testviewaudit.datetime)   现在(现在) - 间隔30天和现在()分组   DATE(testviewaudit.datetime)按DATE排序(testviewaudit.datetime)   ASC;

仍然得到相同的结果

2 个答案:

答案 0 :(得分:0)

试试这个:

select  if(is null(testviewaudit.action), 0 , sum(testviewaudit.action=1))  AS view,
DATE(testviewaudit.datetime) from testviewaudit inner join tmtests on testviewaudit.testid=tmtests.tsid 
where DATE(testviewaudit.datetime) BETWEEN NOW() -  INTERVAL 30 DAY AND NOW() group by  DATE(testviewaudit.datetime) order by DATE(testviewaudit.datetime) asc;

答案 1 :(得分:0)

尝试将整个查询放入IFNULL中。

SELECT IFNULL( (SELECT field1 FROM table WHERE id = 1 ) ,'not found');
相关问题