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

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 に答える