2017-02-09 5 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