2010-01-04 95 views
1

我確定這個問題很明顯,但我一直在擺弄着一組日子過去複雜的子查詢,最後一個小時左右,並且無處可去。SELECT id_field WHERE max(date_field)<'某日期'

我需要從表中選擇一堆ID,其中該記錄的最後日期在給定日期之前。我試圖:

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

但是'不能有聚合在哪裏領域'。我認爲我可以選擇在某個日期以上沒有日期的地方,但此時我的大腦正在揮舞着它的小白旗。

謝謝。

回答

2
SELECT id_field 
    FROM tbl 
GROUP BY id_field 
HAVING max(date_field) < 'some date' 
4
SELECT id_field 
    , max(date_field) 
    FROM tbl 
GROUP BY id_field 
HAVING max(date_field) < 'some date' 
+0

您實際上不需要返回max(date_field)以在HAVING子句中使用它。它基本上是正確的(儘管大多數系統會抱怨你沒有命名第二個字段),但根據OP的需求並沒有達到標準。 – 2010-01-04 23:37:09

0

使用HAVING而不是WHEREHAVING就像一個分組值的地方。