我有下表:
TNO : can be duplicate
CNo : can be duplicate
我需要从表A中选择针对CNo的最大Tno,其中a.RNO = B.RNO
表A
Tno Rno name desc
100 200 adam aadddddd
100 200 adam aadddddd
101 201 king aasdfdsf
表B
Cno Rno
101 200
请你们建议最好的方法。
我尝试了以下但没有太大成功
您好,
请查看示例数据为reqeusted:所以查询应该
Actual Data :
Rowum cno Tno Rno
1 24908 24047 22021
1 24909 22424 22022
1 20438 22426 22023
必填数据:它应显示针对Cno的最大值tno
Rowum cno Tno Rno
1 24908 24047 22021
1 20438 22426 22023
答案 0 :(得分:1)
一种方法是使用CTE
和ROW_NUMBER
函数:
WITH CTE AS(
SELECT RowNum =
ROW_NUMBER()OVER(PARTITION BY A.Rno ORDER BY Tno DESC)
, A.Tno, A.Rno, name, [desc]
FROM TableA A INNER JOIN TableB B ON A.RNO=B.RNO
)
SELECT * FROM CTE
WHERE RowNum = 1