2012-10-02 5 views
1

I 다음 TSQL 쿼리가 있습니다TSQL 만 표시 첫 번째 행

SELECT DISTINCT MyTable1.Date 
    FROM MyTable1 
INNER JOIN MyTable2 
ON MyTable1.Id = MyTable2.Id 
WHERE Name = 'John' ORDER BY MyTable1.Date DESC 

그것은 날짜의 긴 목록을 검색하지만, 나는 단지 첫 번째, 첫 번째 행에서 하나가 필요합니다.

어떻게받을 수 있습니까?

감사합니다.

답변

8

SQL 서버에서는이 TOP 사용할 수 있습니다

SELECT TOP 1 MyTable1.Date 
FROM MyTable1 
INNER JOIN MyTable2 
    ON MyTable1.Id = MyTable2.Id 
WHERE Name = 'John' 
ORDER BY MyTable1.Date DESC 

당신이 DISTINCT를 사용해야하는 경우, 당신은 사용할 수 있습니다 : 심지어

SELECT TOP 1 x.Date 
FROM 
(
    SELECT DISTINCT MyTable1.Date 
    FROM MyTable1 
    INNER JOIN MyTable2 
    ON MyTable1.Id = MyTable2.Id 
    WHERE Name = 'John' 
) x 
ORDER BY x.Date DESC 

또는 :

SELECT MAX(MyTable1.Date) 
FROM MyTable1 
INNER JOIN MyTable2 
    ON MyTable1.Id = MyTable2.Id 
WHERE Name = 'John' 
--ORDER BY MyTable1.Date DESC 
+0

을 user523129 @ 따라 하나의 날짜 값만을 반환하기 때문에 필요할 때'MAX()'를 사용할 수 있습니다. – Taryn

관련 문제