1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
select a.date AS 'xData',IFNULL(b.sum, 0) AS 'yData'
from (
select DATE_FORMAT(adddate(DATE_SUB(CURDATE(), INTERVAL dayofyear(now()) - 1 DAY),
INTERVAL numlist.id - 1 month), '%m') as date
from (SELECT @xi := @xi + 1 as id
from (SELECT 1 UNION SELECT 2 UNION SELECT 3) xc1,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) xc2,
(SELECT @xi := 0) xc0) as numlist
) a
left join
(
SELECT IFNULL(SUM(income),0) sum, DATE_FORMAT(time, '%m') as date
FROM zq_cnz_hy_income_report ts
WHERE YEAR(time)=#{year}
GROUP BY date ORDER BY date
) b
on a.date = b.date order by a.date
效果图:
SELECT v.month AS 'xData',IFNULL(b.COUNT,0) AS 'yData' FROM (
SELECT DATE_FORMAT(CURDATE(), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 3 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 4 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 5 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 6 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 7 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 8 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 9 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 10 MONTH), '%Y-%m') AS `month`
UNION SELECT DATE_FORMAT((CURDATE() - INTERVAL 11 MONTH), '%Y-%m') AS `month`
) v
LEFT JOIN
(
SELECT LEFT(a.time,7) AS 'month',SUM(income) AS COUNT
FROM zq_cnz_hy_income_report AS a
LEFT JOIN zq_cnz_hy_user_station zs ON a.station_id=zs.station_id
WHERE DATE_FORMAT(a.time,'%Y-%m')>DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 12 MONTH),'%Y-%m')
GROUP BY MONTH) AS b
ON v.month = b.month GROUP BY v.month ORDER BY v.month
效果图:
select a.date as 'xData',IFNULL(b.sum, 0) AS 'yData'
from (
select date from (
SELECT DATE_FORMAT(DATE_SUB(last_day(curdate()), INTERVAL xc-1 day), '%Y-%m-%d') as date
FROM (
SELECT @xi:=@xi+1 as xc from
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc1,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) xc2,
(SELECT @xi:=0) xc0
) xcxc) x0 where x0.date >= (select date_add(curdate(),interval-day(curdate())+1 day))
) a
left join
(
select IFNULL(SUM(income),0) sum, DATE_FORMAT(time,'%Y-%m-%d') as date
FROM zq_cnz_hy_income_report ts
group by DATE_FORMAT(time, '%Y-%m-%d')
) b
on a.date =b.date order by a.date
效果图:
SELECT
b.created AS 'xData',
IFNULL(c.sum, 0) AS 'yData'
FROM
(
SELECT
@cdate := date_add( @cdate, INTERVAL - 1 DAY ) created
FROM
( SELECT @cdate := date_add( CURDATE( ), INTERVAL 1 DAY ) FROM zq_cnz_hy_income_report LIMIT 30 ) a
) b
LEFT JOIN (
select SUM(income) as sum, DATE_FORMAT(time,'%Y-%m-%d') as date
FROM zq_cnz_hy_income_report ts
group by DATE_FORMAT(time, '%Y-%m-%d')) c
ON b.created = date_format( c.date, '%Y-%m-%d')
GROUP BY
b.created
ORDER BY
b.created;
效果图:
SELECT t1.datetime as 'xData', IFNULL(t2.num, 0) AS 'yData' FROM (
SELECT CURDATE() AS datetime
union all
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS datetime
union all
SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS datetime
union all
SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS datetime
union all
SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS datetime
union all
SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS datetime
union all
SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS datetime
) t1 LEFT JOIN (
select IFNULL(SUM(income),0) num, DATE_FORMAT(time, '%Y-%m-%d') as datetime
FROM zq_cnz_hy_income_report ts
GROUP BY LEFT(datetime, 10) ORDER BY datetime DESC LIMIT 7
) t2 ON t1.datetime = t2.datetime ORDER BY t1.datetime asc
效果图: