2014-10-14 2 views
1

С MySQL Я пытаюсь принести сумму, которая донорскую только в прошлом году,Msql в прошлом году данные только

для exampe: это мой пример таблицы. здесь я хотел бы отметить сумму, которая пожертвована в только в прошлом году. здесь самое последнее пожертвование делается на октаву-14, поэтому я хочу данные от октаву -14 до октября - 13 и не SEP -13

+--------+-------+------+---------+ 
| nid | amount | time | month | 
+--------+-------+------+---------+ 
| X | 30 |  |sep-13 | 
+--------+-------+------+---------+ 
| X | 30 |  |sep-13 | 
+--------+-------+------+---------+ 
| A | 10 |  |oct-13 | 
+--------+-------+------+---------+ 
| A | 10 |  |oct-13 | 
+--------+-------+------+---------+ 
| B | 20 |  |oct-14 | 
+--------+-------+------+---------+ 
| C | 20 |  |oct-14 | 
+--------+-------+------+---------+ 
+0

Вы можете проверить или выполнить поиск прежде, чем задать вопрос? http://stackoverflow.com/questions/5027687/selecting-all-records-from-one-year-ago-till-now –

ответ

0

Если столбец «месяц» столбец даты, вы можете использовать ЭКСТРАКТ функция.

SELECT * FROM _table_ WHERE EXTRACT(year from `month`) = 13; 
+0

Thanks Marco Aurélio Deleu Я пробую ваш код. –

0
SELECT * FROM TABLE WHERE RIGHT(MONTH, 2) = '13' 

ЕСЛИ ДАТА ПОСЛЕДНИЙ ГОД Статическом ЗНАЧЕНИЕ И НЕ НУЖНО ОТРЕГУЛИРОВАНЫ ЗА ГОД ДО ГОДА ПРОЕКТ, БУДЬ ЭТО VARCHAR ИЛИ ДАТА Это значение будет трактоваться как STRING И ПРАВА 2 ХАРАКТЕРЫ ОСТАЮТСЯ ОДНОЙ. -Простите о шапках.

Если вы ищете динамичный подход ...

SELECT * FROM TABLE WHERE STR_TO_DATE(MONTH, '%Y') = YEAR(CURDATE() - 1) 

или что-то вроде выше. Опять же, это зависит от типа данных, который определяет это поле. Но это должно сделать трюк.

+0

благодарит Hituptony за ваше предложение. –

0

Если вам нужно возвратить строки на основе максимального года в таблице, то один из этих запросов может помочь:

  1. Если month является DATE Тип:

    SELECT * 
        FROM sample_table 
        WHERE YEAR(month) = YEAR((SELECT MAX(month) FROM sample_table)) 
    
  2. Если month является тип характера :

    SELECT * 
        FROM sample_table 
        WHERE RIGHT(month,2) = (SELECT MAX(RIGHT(month,2)) FROM sample_table) 
    
Смежные вопросы