Hi @Martin Kevin
Try this query:
;WITH CTE1 AS
(
SELECT *,ROW_NUMBER()OVER(PARTITION BY R1,R2,R3,R4 ORDER BY R5 DESC) AS RNum
FROM #R
),CTE2 AS
(
SELECT R1,R2,R3,R4,R5,Amount,Round1,Round2,RNum
FROM CTE1
WHERE RNum = 1
UNION ALL
SELECT C1.R1,C1.R2,C1.R3,C1.R4,C1.R5,C1.Amount,C1.Round1,C1.Round2,C1.RNum
FROM CTE2 C2 JOIN CTE1 C1
ON C2.R1=C1.R1 AND C2.R2=C1.R2 AND C2.R3=C1.R3 AND C2.R4=C1.R4
AND C2.RNum + 1 = C1.RNum
AND (C1.Round1 <> C2.Round1 OR C1.Round1 <> C2.Round1)
),CTE3 AS
(
SELECT *,MAX(RNum)OVER(PARTITION BY R1,R2,R3,R4) AS Max_Rnum
FROM CTE2
)
SELECT R1,R2,R3,R4,R5,Amount,Round1,Round2
FROM CTE3
WHERE Max_Rnum <> 1
Best regards,
Cosmog Hong
If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our Documentation to enable e-mail notifications if you want to receive the related email notification for this thread.