2013-10-25 3 views
0

У меня есть таблица в MYSQL, в которой среди других полей у меня есть два поля один для Месяца (Varchar) и year (int). Поле «Месяцы» используется для хранения имени месяца, а год используется для хранения года ввода данных. Я смущен тем, что как можно использовать класс where для отображения только записей максимального месяца и года. Для примераПрочтение записей за прошлый месяц и год

10 records are there for month January 2013 
50 records are there for month February 2013 
. 
. 
. 
100 records are there for the month of November 2014 --- (LAST ENTRY) 

Теперь ЗДЕСЬ Я хочу, чтобы отобразить только ноябрь 2014 записей. Мой код написан таким образом, что я не могу использовать запрос на выборку, я должен сделать это с помощью предложения WHERE

ответ

1
SELECT * 
FROM tablename 
WHERE 
    (year, month) = (SELECT year, month 
        FROM tablename 
        ORDER BY 
        STR_TO_DATE(CONCAT_WS(' ', '01', month, year), '%d %M %Y') DESC 
        LIMIT 1) 
+0

Его не работает .... :-(Предоставление ошибки для использования «правильного синтаксиса для использования рядом с«% d% M% Y ») – Ricky

+0

@ Ricky я забыл один '' 'и удалил один дополнительный') 'теперь должно быть хорошо – fthiella

+0

Спасибо, что сработало – Ricky

1
select count(*), year, month 
from your_table 
group by year, month 
order by year, 
     case when month = 'January' then 1 
       when month = 'February' then 2 
       when month = 'March' then 3 
       when month = 'April' then 4 
       when month = 'May' then 5 
       when month = 'June' then 6 
       when month = 'July' then 7 
       when month = 'August' then 8 
       when month = 'September' then 9 
       when month = 'October' then 10 
       when month = 'November' then 11 
       when month = 'December' then 12 
    end desc 
limit 1 
+0

Мой код написан в такой способ, которым я не могу использовать запрос select, я должен сделать это, используя WHERE CLAUSE – Ricky

0

Try This

select Count(*),month,year from tablename 
group by STR_TO_DATE(CONCAT_WS(' ', '01', month, year), '%d %M %Y') order by 
STR_TO_DATE(CONCAT_WS(' ', '01', month, year), '%d %M %Y') 
Смежные вопросы