我有一个表记录了基于辅助代码和代码的集合中的操作,下面的例子基本上是按序号分开的两个操作。我的问题是,你如何获得只有使用SQL的最新序列集?只选择SQL中的最新序列
到目前为止,我可以使用下面的查询获得最新的序列号,但我觉得这不是最好的方法。
Select max(SequenceNo) as LatestSequence from tblLogs Where
1 = (Case when charindex(SecondaryID, @SecondaryID) > 0 then 1 else 0 end)
下面是示例表:
+----+---------------+------------+------------+
| id | SecondaryID | SequenceNo | Code |
+----+---------------+------------+------------+
| 23 | ZRHK113100017 | 1 | 0000000001 |
| 24 | ZRHK113100017 | 1 | 0000009460 |
| 25 | ZSHK113100021 | 1 | 0000000001 |
| 26 | ZSHK113100021 | 1 | 0000009460 |
| 27 | ZRHK113100017 | 2 | 0000000001 |
| 28 | ZRHK113100017 | 2 | 0000009460 |
| 29 | ZSHK113100021 | 2 | 0000000001 |
| 30 | ZSHK113100021 | 2 | 0000009460 |
+----+---------------+------------+------------+
查询应返回以下
+----+---------------+------------+------------+
| id | SecondaryID | SequenceNo | Code |
+----+---------------+------------+------------+
| 27 | ZRHK113100017 | 2 | 0000000001 |
| 28 | ZRHK113100017 | 2 | 0000009460 |
| 29 | ZSHK113100021 | 2 | 0000000001 |
| 30 | ZSHK113100021 | 2 | 0000009460 |
+----+---------------+------------+------------+