이것은 이전에 논의되었을 것입니다 (또는 너무 간단합니다). 그러나 쉬운 대답을 찾을 수 없습니다 : 어떻게해야합니까? 가장 빠른 미래의 단일 날짜를 선택하십시오. ID 당 최신 날짜?SQL : 테이블 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
어떤 데이터베이스입니까? –
CURRENT_TIMESTAMP ...를 표시하도록 수정 된 경우 (약간의 의사 코드였습니다 ...) – ajo