0

我有下表:

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

请各位大神指点一下最好的方法。

我尝试了以下但没有太大成功

你好,

请按要求查看示例数据:所以查询应该

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
4

1 回答 1

1

一种方法是使用CTEandROW_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
于 2012-06-10T12:03:24.907 回答