在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;
仍然得到相同的结果
答案 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');