2013-10-28 5 views
2

"동문 이후"필드가있는 동창 카드를 만들 수있는 데이터를 가져 오는 Sequel Server 2008 쿼리를 작성하는 중입니다. 나는 그들의 모든 과정 기록을 끌어 내기 위해 나의 질문을 받았다 - 이제 나는 가장 오래된 과정만을 포함하도록 그것을 좁히기를 원한다."그룹"의 첫 번째 레코드 선택

지금까지 코드를 아래에 나열했습니다.

온라인에서 보았을 때 전체 행 파티션을 사용하고 전체/최소 그룹을 사용했지만 전체적으로 많은 성공을 거두지 못했습니다. 이 유일한 유일한 값은 UserID입니다. CourseID는 본질적으로 코스 이름의 단축형입니다 (각 코스는 1 년에 여러 번 제공됩니다). 여기에서 본 유사한 예제에는 초기 데이터 세트를 가져 오는 WHERE 절이 없으므로 어디로 가는지 잘 모르겠습니다.

어떤 도움이나 제안이라도 대단히 환영합니다!

SELECT 
    DisplayName, UserID, CourseID, EndDate 
FROM 
    BigTable 
WHERE 
    SIMPLE WHERE CLAUSE 1 
    AND SIMPLE WHERE CLAUSE 2 
    AND SIMPLE WHERE CLAUSE 3 
ORDER BY LastName, FirstName, MiddleName, EndDate ASC 

이 생성 :

DisplayName UserID CourseID EndDate 
-------------|--------|--------|------------------------ 
John Doe  | 123579 | DPRM | 2000-09-29 00:00:00.000 
Mother Goose | 121157 | ICCT | 2009-06-19 00:00:00.000 
Boy Horner | 117223 | ICCT | 2003-11-21 00:00:00.000 
Boy Horner | 117223 | DPRM | 2008-06-20 00:00:00.000 
Miss Muffett | 115280 | SDPB | 2006-11-03 00:00:00.000 
Simple Simon | 190423 | SDPB | 2013-10-11 00:00:00.000 
Jack Sprat | 115868 | SDPA | 2005-11-04 00:00:00.000 
Jack Sprat | 115868 | SSTR | 2008-11-07 00:00:00.000 

내가 (그들의 오래된 ENDDATE와 사람 당 하나 개의 라인)

DisplayName UserID CourseID EndDate 
-------------|--------|--------|------------------------ 
John Doe  | 123579 | DPRM | 2000-09-29 00:00:00.000 
Mother Goose | 121157 | ICCT | 2009-06-19 00:00:00.000 
Boy Horner | 117223 | ICCT | 2003-11-21 00:00:00.000 
Miss Muffett | 115280 | SDPB | 2006-11-03 00:00:00.000 
Simple Simon | 190423 | SDPB | 2013-10-11 00:00:00.000 
Jack Sprat | 115868 | SDPA | 2005-11-04 00:00:00.000 

답변

2

당신은 수를 다음과 같이 보일 것이라고 기대하고있어 출력의 종류 CTE과 함께 ROW_NUMBER을 사용하십시오.

WITH CTE AS 
(
    SELECT DisplayName, UserID, CourseID, EndDate, 
     RN = ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY EndDate ASC) 
    FROM dbo.TableName 
) 
SELECT DisplayName, UserID, CourseID, EndDate 
FROM CTE WHERE RN = 1 

Demo

+0

감사합니다. 나는 처음 where 행 피연산자를 추가하여 첫 번째 행을 가져와야한다고 알았습니다 (첫 번째 FROM 문 바로 아래에 있음) – WufPupster

관련 문제