これはかなり単純なはずですが、私は自分に合った解決策を見つけようとしてつまずきました。
次の(簡略化された)構造を持つ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サーバーを使用しているので、そのフレーバーでそれを行う特別な方法があれば、私はそれを使用することにオープンです。個人的には、エンジンにとらわれないものが欲しいです。
しかし、すべてのユーザーの目標を達成するクエリを作成するにはどうすればよいでしょうか。
編集:最新の日付ではなく、各ユーザーの最大contractID値を探していることも追加する必要があります。