以下のレコード セットごとに、3 つの列があり、PersonId のすべてのセットの最大 CaseId 値を返す必要があります。
ID PersonId CaseId
66 30 410
1681 30 3508
226 31 958
856 31 2213
1023 31 2400
たとえば、次のようなレコードセットを返したいと思います。
ID PersonId CaseId
1681 30 3508
1023 31 2400
ご覧のとおり、PersonId のすべてのセットに対して常に最大 CaseId を返しています。
私は次のことを試しましたが、常に最大レコードを返すとは限りません:
WITH latestRecord AS
(
SELECT CaseId, PersonId, ID,
ROW_NUMBER() OVER (PARTITION BY PersonId ORDER BY ID ASC) AS RN
FROM Employee
)
SELECT Max(RN),CaseId, PersonId
FROM latestRecord
GROUP BY RN,CaseId, PersonId
--WHERE RN > 1
ORDER BY CaseId
ご協力いただきありがとうございます!