2013-11-20 5 views
0

У меня есть следующая таблица:не удается найти результат

ID | ID_MESIN |PIC   | Due Date | 
________________________________________ 
    1 | 1081  | Hariyanto |12/12/2013 
    2 | 1081  | Budi  |13/12/2013 
    3 | 1059  | Jono  |23/12/2013 
    4 | 1059  | Yuki  |24/12/2013 

Мне нужен запрос, который дает последнюю строку на ID_MESIN колонке.

например: если я запускаю запрос с ID_Mesin = 1059, то результат будет

4 | 1059  | Yuki  |24/12/2013` 

если я запускаю запрос с ID_Mesin = 1081 результат

2 | 1081  | Budi  |13/12/2013 

У меня есть запрос, как это:

SELECT * , MAX(ID) AS ID FROM mytable WHERE ID_MESIN = '1081' 

и так:

SELECT * FROM mytable WHERE ID_MESIN = '1081' AND ID = (SELECT MAX(ID) FROM mytable) 

Но результат не так:

2 | 1081  | Hariyanto |12/12/2013 

ID и ID_MESIN верно, но другой столбец неправильно.

ответ

1

Вы близки:

SELECT * FROM mytable WHERE ID_MESIN = '1081' 
AND ID = (SELECT MAX(ID) FROM mytable where ID_MESIN = '1081') 

Если вы хотите, самые высокие строки идентификаторов для всех значений ID_MESIN:

select t.* 
from mytable t 
join (select id_mesin, max(id) as id from mytable group by id_mesin) m 
    on t.id_mesin = m.id_mesin and t.id = m.id 
+0

спасибо за вашу помощь. Мне просто нужны только одна строка. И я знаю, что мой запрос близок. Нужно только, где ID_MESIN = '1081' Большое спасибо. :) – Uchsun

+0

@ Vijaykumar Hadalgi благодарит вас за помощь. :) – Uchsun

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