У меня есть эта таблица:MYSQL получить последний номер задания
TableNumber(Int 0 to 25)|Name(varchar 100)|Project(varchar 15)|StartDate(Datetime)
1 |David |P1 |'2015-02-06 08:00:00'
2 |Sebastien |P2 |'2015-02-06 08:00:00'
1 |David |P4 |'2015-02-06 12:00:00'
2 |Sebastien |P3 |'2015-02-07 08:00:00'
И я ищу, чтобы получить последнюю работу для каждого человека на назначенный день.
Я хотел бы иметь:
TableNumber(Int 0 to 25)|Name(varchar 100)|Project(varchar 15)|StartDate(Datetime)
2 |Sebastien |P2 |'2015-02-06 08:00:00'
1 |David |P4 |'2015-02-06 12:00:00'
Поэтому я хочу, чтобы исключить Р3, так как его не «2015-02-06», и я хочу, чтобы исключить P1 вызвать его не последнюю работу для Дэвида (его P4).
Обратите внимание, что NOW() возвращает «2015-02-06 15:00:00» в следующих примерах.
Вот что я пробовал:
SELECT * FROM MyTable WHERE DATEDIFF(startdate, NOW()) = 0 ORDER BY tablenum DESC;
Но это только исключенный P3
Так что я попытался вместо этого:
SELECT * FROM MyTable AS p WHERE DATEDIFF(p.startdate, NOW()) = 0 AND TIMEDIFF(p.startdate, NOW()) = (SELECT MAX(TIMEDIFF(p2.startdate, NOW())) FROM MyTable AS p2 WHERE p2.startdate = p.startdate) ORDER BY tablenum DESC;
Но его по-прежнему не исключает P1.
Кто-нибудь знает, как я мог это достичь? КСТАТИ StartDate всегда будет круглый час (08:00:00 или 12:00:00 или 22:00:00 ...)
UPDATE
Да, так как это было не очень понятно, что Я хотел бы уточнить здесь:
Мне нужно знать, какой последний проект работал на каждого человека.
поэтому в моей таблице мне нужно знать, что Себастьян работает над P2 на таблице номер 2 и что Дэвид работает на P4 на таблице номер 1. Мне не нужен P1, потому что это не последний проект, над которым работал Дэвид (по в последнем проекте я также включил проект, над которым он сейчас работает). Я также хочу исключить все в будущем, поэтому P3 (кто завтра) не должен отображать.
возможно дубликат [SQL выбрать только строки с максимальным значением на колонке] (http://stackoverflow.com/ вопросы/7745609/sql-select-only-rows-with-max-value-on-a-column) –
'select user, max (startdate) ... group by user?? –
По последним данным, я понял «самый поздний» проект (из контекста вашего вопроса) – Tarik