这似乎应该相当简单,但我在试图找到一个适合我的解决方案时遇到了困难。
我有一个 member_contracts 表,它具有以下(简化的)结构。
MemberID | ContractID | StartDate | End Date |
------------------------------------------------
1 1 2/1/2002 2/1/2003
2 2 3/1/2002 3/1/2003
3 3 4/1/2002 4/1/2003
1 4 2/1/2002 2/1/2004
2 5 3/1/2003 2/1/2004
3 6 4/1/2003 2/1/2004
我正在尝试创建一个查询,该查询将从该表中选择最新的合同。这是这个小例子的以下输出:
MemberID | ContractID | StartDate | End Date |
------------------------------------------------
1 4 2/1/2002 2/1/2004
2 5 3/1/2003 2/1/2004
3 6 4/1/2003 2/1/2004
在每个用户的基础上执行此操作非常简单,因为我可以使用子查询来选择指定用户的最大 contractID。我正在使用 SQL Server,所以如果有一种特殊的方式可以使用这种方式,我愿意使用它。就个人而言,我想要与引擎无关的东西。
但是,我将如何编写一个可以为所有用户实现目标的查询?
编辑:我还应该补充一点,我正在寻找每个用户的最大 contractID 值,而不是最近的日期。