2014-01-02 2 views
1

MySQL Query, как этоRetrive данные для конкретных месяцев

SELECT MONTHNAME(access_date) as date, 
     DATE_FORMAT(access_date, '%m/%Y') as month_date , 
     COUNT(log_id) as total_count 
     FROM user_activity_log 
WHERE dam_id = (
        SELECT dam_id 
         FROM dam_content_details 
        WHERE content_type= '$content_type' 
       ) 
     AND access_date >= last_day(NOW() - INTERVAL ($month) MONTH) 
     GROUP BY MONTH(access_date) 
     ORDER BY access_date ASC 

я передам число как 1,2,3 .... то его дает значение для этого месяца.

Проблема, с которой я столкнулся, - это получение данных за 30 дней, 60 дней. Я хочу, если я напишу $ month = '1; то он должен вернуть Данные за текущий месяц & предыдущие данные месяц, начиная с первого дня 1.

Мой пример вывода - $ месяц = ​​2

date  month_date total_count 
--------- ------------ ----------- 
December 12/2013  4 
January  01/2014  1 

Я хочу, чтобы в декабре он должен рассчитать от 12/01/2013. 1 декабря 2013 года. Есть идеи, как его решить?

+0

Что такое значение '01/2013'? Пожалуйста, объясните .. –

+0

Извините, просто отредактировал этот вопрос. Пожалуйста, см., Что –

+0

@ Clockwork-Muse Нет чувака, у меня нет разрешения на передачу жалоб. –

ответ

0

Вы должны удалить = из >=.

Попробуйте это:

SELECT MONTHNAME(access_date) as date, 
     DATE_FORMAT(access_date, '%m/%Y') as month_date , 
     COUNT(log_id) as total_count 
FROM user_activity_log 
WHERE dam_id = (SELECT dam_id FROM dam_content_details WHERE content_type= '$content_type') AND 
     access_date > LAST_DAY(NOW() - INTERVAL (($month)+1) MONTH) 
GROUP BY MONTH(access_date) 
ORDER BY access_date ASC 
+0

no buddy не работает. –

+0

@RIADev В чем проблема, с которой вы столкнулись ??? –

+0

Посмотрите, пройду ли я 1, затем выберем текущую дату в предыдущий месяц в интервале 30 дней. Но я хочу текущий месяц, начиная с 1 до текущей даты и аналогично за предыдущий месяц всего 30/31 дней. –

Смежные вопросы