実際には、クエリで明示的にデータを並べ替える必要があります。私の好みはこういうものだろう。
サンプルデータ
CREATE TABLE #EnrolmentData (StudentID int, EnrolmentID int)
INSERT INTO #EnrolmentData (StudentID, EnrolmentID)
VALUES
(1,1001)
,(1,1002)
,(2,1003)
,(3,1004)
,(3,1005)
,(3,1006)
実際のクエリ
SELECT
a.*
FROM
(
SELECT
StudentID
,EnrolmentID
,ROW_NUMBER() OVER(PARTITION BY StudentID ORDER BY StudentID, EnrolmentID) RowNum
FROM #EnrolmentData
) a
WHERE a.RowNum = 1
結果。
StudentID EnrolmentID RowNum
1 1001 1
2 1003 1
3 1004 1
内側のクエリを実行して、それが何をしているのかを知ることができます(一時テーブルを作成したら)。作業しているデータタイプについて言及していないので、正しいフィールドで注文していることを確認してください。最も高い数値のEnrolmentIDが必要な場合(そしてフィールドがintの場合)、サブクエリの後にDESC
を置きます。 DESC
SELECT
a.*
FROM
(
SELECT
StudentID
,EnrolmentID
,ROW_NUMBER() OVER(PARTITION BY StudentID ORDER BY StudentID, EnrolmentID DESC) RowNum
FROM #EnrolmentData
) a
WHERE a.RowNum = 1
結果
StudentID EnrolmentID RowNum
1 1002 1
2 1003 1
3 1006 1
質問を編集し、サンプルデータと希望する結果を提供してください。 –