這可能是以前討論過的(或者它太簡單了),但我找不到一個簡單的答案:應該如何做:選擇(單個)最早的未來日期和每個ID的最近日期?SQL:自動從表SELECT中JOIN頂部1? (或更好的方法...)
t1: ==?==> (earliest) (most recent)
|id|date(DESC)| |id|future_date | past_date |
+==+==========+ +==+=============+===============+
|1 | d1 | | 1| d1 | d3 |
|2 | d2 | | 2| d2 | d6 |
(<==now) | 3| | d4 |
|1 | d3 |
|3 | d4 |
|1 | d5 |
|2 | d6 |
我正沿着以下的思路思考,但是我有一種感覺,這是相當複雜/語法錯誤,而我還沒有想出如何限制單的結果(即最新的/最近在未來)。有什麼建議麼?
SELECT t_1.id,t_1.date AS future_date,t_2.date AS past_date
FROM (SELECT * FROM t1 WHERE t1.date>CURRENT_TIMESTAMP) t_1
LEFT OUTER JOIN
(SELECT TOP 1 * FROM t1 WHERE t1.date<CURRENT_TIMESTAMP) t_2
ON t_1.id=t_2.id
這是哪一個數據庫? – 2011-01-20 07:22:43
如果修改它顯示CURRENT_TIMESTAMP ...(它有點僞代碼...) – ajo 2011-01-20 07:36:06