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

MYSQL数据库,查询一周内,合计每天的数量和出现的行数,没有记录的那一天就显示0

2014-06-05 12:20 926 查看
示例:

 一、表结构及测试数据:

CREATE TABLE tst (
testDate date,
testSum INT
);

INSERT INTO tst VALUES ( '2014-01-01', 1);
INSERT INTO tst VALUES ( '2014-01-02', 3);
INSERT INTO tst VALUES ( '2014-01-02', 4);
INSERT INTO tst VALUES ( '2014-01-03', 5);
INSERT INTO tst VALUES ( '2014-01-05', 9);
INSERT INTO tst VALUES ( '2014-01-06', 11);
INSERT INTO tst VALUES ( '2014-01-07', 13);
二、SQL执行语句:
SELECT
t2.all_day AS `日期`,
IFNULL(SUM(testSum), 0) AS `合计数量`,
COUNT(testSum) AS `出现行数`
FROM
(
SELECT
@rownum :=@rownum + 1 AS NO,
DATE_ADD(
'2014-01-01',
INTERVAL @rownum DAY
) AS all_day
FROM
(SELECT @rownum := -1) r_init,
tst
) t2
LEFT JOIN tst ON (
t2.all_day = DATE(tst.testDate)
)
WHERE
t2.all_day >= '2014-01-01'
AND t2.all_day <= '2014-01-07'
GROUP BY
t2.all_day;
三、运行结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐