您的位置:首页 > 数据库 > MySQL

MySQL复杂语句查询问题

2016-10-26 21:20 267 查看
需求:

项目需要在查询数据的时候,将没有数据的日期自动补充数据。

实现思路:

设定一个变量进行叠加再用一个日期函数进行叠加日期从目标表和变量进行查询,遍历出我们需要的日期。在这个基础上与目标表有条件的左连接,这个时候使用判断函数进行查询,没有数据的日期自动补零。

具体实现效果如下:

SELECT
t2.all_day AS createdOn,
IFNULL(count(id), 0) AS sumOfActiveDriver
FROM
(
SELECT
@rownum := @rownum + 1 AS NO,
DATE_ADD(
'2016-04-05',
INTERVAL @rownum DAY
) AS all_day
FROM
(SELECT @rownum := -1) a ,
pay_history
) t2
LEFT JOIN pay_history ON (
t2.all_day = DATE(pay_history.created_on)
)
WHERE 1=1
AND   t2.all_day >= '2016-04-05'
AND   t2.all_day <= '2016-06-29'
GROUP BY
t2.all_day;


这里面使用到Data_ADD()和IFNULL这两个函数。

Data_ADD():函数向日期添加指定的时间间隔。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sqlserver