2013-04-02 2 views
0

Здравствуйте, у меня есть быстрый вопрос, который я не могу понять. Я пытаюсь перечислить элементы конечного пользователя (только пример) только с отображенным последним комментарием.Группировка полей для отображения Последние последние

ID Name EventDate  Type 
1 PC  12/12/2012 End User Items 
1 PC  11/12/2012 End User Items 
1 PC  10/11/2012 End User Items 
2 Mobile 12/12/2012 End User Items 
2 Mobile 11/01/2012 End User Items 
2 Mobile 12/12/2011 End User Items 
3 Server 12/12/2013 Server 

Так что я хотел бы попробовать что-то вроде этого:

select * from systems where type = "End User Items" group by ID 

Но результат все равно не показывать последнюю дату. Любая помощь будет принята с благодарностью!

+0

Какой желаемый выход для этого входного сигнала? – MarcinJuraszek

+0

Вы хотите увидеть последние комментарии? В каком поле упоминается комментарий? –

ответ

0

Вы пробовали получить дату MAX следующим образом?

SELECT Name, 
    MAX(EventDate), 
    Type 
    FROM systems 
    WHERE type = 'End User Items' 
    GROUP BY Name, Type 
0

Вы можете использовать подзапрос, чтобы получить идентификатор и MAX Дата и затем присоединиться обратно на стол системы с идентификатором и датой MAX.

SELECT s2.Name, s.EventDate 
FROM system s2 
INNER JOIN (SELECT ID, MAX(EventDate) EventDate 
      FROM systems 
      WHERE type = 'End User Items' 
      GROUP BY ID) AS s on s2.ID = s.ID AND s2.EventDate = s.EventDate 
0

Определите столбцы, которые вы хотите показать, без суммирования в качестве полей GROUP BY. Выберите эти поля и вычисленные столбцы итоговой функции (например, max(), sum(), count()).

SELECT ID, Name, MAX(EventDate) as LastDate 
    FROM systems 
    WHERE type = 'End User Items' 
    GROUP BY ID, Name 

Возможно, вы захотите увидеть ID и имя. Тип здесь лишний, поскольку вам нужен только один тип. Вы хотите получить максимальную дату в группе. Все возвращенные поля должны быть либо сводными функциями, либо столбцами GROUP BY.

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