Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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
如何跨两个ID查询';Microsoft SQL Server中有什么?_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

如何跨两个ID查询';Microsoft SQL Server中有什么?

如何跨两个ID查询';Microsoft SQL Server中有什么?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我是Microsoft SQL server新手,正在使用现有数据库。我需要查询一个表以获得客户列表。每个客户都有一个客户ID和一个历史ID。对客户记录(在桌面应用程序中)的某些编辑会导致将新行写入表中,且历史记录ID会增加,例如: | CustID | HistoryID | Name | City | | AB1 | 1 | Bob Smith | Bangkok | | CD2 | 1 | Joe Bloggs | Lo

我是Microsoft SQL server新手,正在使用现有数据库。我需要查询一个表以获得客户列表。每个客户都有一个客户ID和一个历史ID。对客户记录(在桌面应用程序中)的某些编辑会导致将新行写入表中,且历史记录ID会增加,例如:

| CustID | HistoryID | Name        | City    |
| AB1    | 1         | Bob Smith   | Bangkok |
| CD2    | 1         | Joe Bloggs  | London  |
| CD2    | 2         | Joe Bloggs  | Paris   |
| ZA9    | 1         | Sarah Jones | Berlin  |
我需要获取每个客户的“最新”记录(HistoryID最高的客户)-因此在上面的示例中,我需要获取“Bob Smith”的行,第二行是“Joe Bloggs”(不是第一行),第二行是“Sarah Jones”

执行此操作的最佳查询是什么?谢谢

使用
行号()

可能是一个复制品
select t.*
from (select t.*,
             row_number() over (partition by custid order by historyid desc) as seqnum
      from t
     ) t
where seqnum = 1;