SELECT id_field WHERE max (date_field) <'некоторая дата' - PullRequest
1 голос
/ 05 января 2010

Я уверен, что этот вопрос очевиден, но я в последний час или около того возился со все более сложным набором подзапросов и ничего не получил.

Мне нужно выбрать группу идентификаторов из таблицы, где последняя дата для этой записи предшествует заданной дате. Я пытался:

SELECT id_field WHERE max(date_field) < 'some date'

Но получение 'не может иметь агрегат в поле где'. Я считал, что могу ВЫБРАТЬ, где нет дат выше определенной даты, но в этот момент мой мозг машет маленьким белым флажком.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 05 января 2010
SELECT id_field
     , max(date_field)
  FROM tbl
GROUP BY id_field
HAVING max(date_field) < 'some date'
2 голосов
/ 05 января 2010
SELECT id_field 
  FROM tbl 
 GROUP BY id_field 
HAVING max(date_field) < 'some date' 
0 голосов
/ 05 января 2010

Используйте HAVING вместо WHERE. HAVING похоже на где сгруппированные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...