我確定這個問題很明顯,但我一直在擺弄着一組日子過去複雜的子查詢,最後一個小時左右,並且無處可去。SELECT id_field WHERE max(date_field)<'某日期'
我需要從表中選擇一堆ID,其中該記錄的最後日期在給定日期之前。我試圖:
SELECT id_field WHERE max(date_field) < 'some date'
但是'不能有聚合在哪裏領域'。我認爲我可以選擇在某個日期以上沒有日期的地方,但此時我的大腦正在揮舞着它的小白旗。
謝謝。
我確定這個問題很明顯,但我一直在擺弄着一組日子過去複雜的子查詢,最後一個小時左右,並且無處可去。SELECT id_field WHERE max(date_field)<'某日期'
我需要從表中選擇一堆ID,其中該記錄的最後日期在給定日期之前。我試圖:
SELECT id_field WHERE max(date_field) < 'some date'
但是'不能有聚合在哪裏領域'。我認爲我可以選擇在某個日期以上沒有日期的地方,但此時我的大腦正在揮舞着它的小白旗。
謝謝。
SELECT id_field
FROM tbl
GROUP BY id_field
HAVING max(date_field) < 'some date'
SELECT id_field
, max(date_field)
FROM tbl
GROUP BY id_field
HAVING max(date_field) < 'some date'
使用HAVING
而不是WHERE
。 HAVING
就像一個分組值的地方。
您實際上不需要返回max(date_field)以在HAVING子句中使用它。它基本上是正確的(儘管大多數系統會抱怨你沒有命名第二個字段),但根據OP的需求並沒有達到標準。 – 2010-01-04 23:37:09