Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 获取列具有最大值的行_Sql Server 2005 - Fatal编程技术网

Sql server 2005 获取列具有最大值的行

Sql server 2005 获取列具有最大值的行,sql-server-2005,Sql Server 2005,我有下表: 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 你们能告诉我最好的方法吗 我尝试了以下方法,但没有多大成功 嗨 请查看

我有下表:

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

一种方法是使用
CTE
ROW\u 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

你认为它会如何工作?您可能会发现您得到了更高质量的答案,如果您能够证明您有,人们会更愿意帮助您。同时显示示例的结果。由于您的表可能有重复的TNo,因此可能有2个最大值。我非常确定您需要方括号中的
desc
列;-)嗨,我试过cno&Tno做一个订单,但它在CTE中不受支持?嗨,我试过你的查询,但仍然得到rowid的两条记录;tno;cno rno 1 2488 22425 20882 1 2488 2241122005@user362283:编辑您的问题并显示示例数据和所需结果。顺便说一句,您可以始终使用
selecttop1
hi我已经添加了有问题的示例。谢谢