2017-02-09 91 views
0
SELECT DATE_FORMAT(es.scheduled_datetime, '%X-%V') AS date, 
    COUNT(es.event_schedule_id) AS total, 
    0 as type 
    FROM event_schedule es ,event_schedule_mapping esm,events e 
    WHERE 
    es.event_schedule_id = esm.event_schedule_id and 
    esm.event_id = e.event_id and 
    es.event_status_id in(1,2) and 
    es.scheduled_datetime BETWEEN 
    '2017-01-01' AND '2017-01-31' 
    GROUP BY date 
    ORDER BY date 

这是一个使用此查询,我能够显示记录,其计数大于零而低于输出来这样如何将数据每周明智MySQL中每个月

一月月

更大我的查询
'2017-01', '2', '0' 
'2017-02', '2', '0' 
'2017-03', '10', '0' 
'2017-04', '2', '0' 
'2017-05', '9', '0' 

但它没有显示,如果计数在第二个星期零,而我必须 显示也:

'2017-01', '2', '0' 
'2017-02', '0', '0' 
'2017-03', '10', '0' 
'2017-04', '2', '0' 
'2017-05', '9', '0' 

请建议我如何显示记录如果计数为零,它应该明智的请建议我

+0

见http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very -simple-sql-query – Strawberry

+0

你期望的输出是什么 – affaz

+0

你需要创建一个子查询来生成你过滤的月份的星期,并在你的'event_schedule'表中使用它的外连接。 –

回答

0

如果你想从数据库每个月每周获取数据,我已经查询过,试试这个查询。

SELECT DISTINCT EXTRACT(WEEK FROM date) as week,tbl_data.date AS date, SUM(count.calories) AS sum,tbl_data.offset AS offset from tbl_data INNER JOIN count ON count.id = tbl_data.item_id where tbl_data.user_id="+user_id+" and tbl_data.date and MONTH(date) = MONTH(CURRENT_DATE()) GROUP BY week 
相关问题