次のようなテーブルを指定します。
RecordId CreatedDate ParentRecordId
1 2012/05/10 NULL
2 2012/05/13 NULL
3 2012/05/20 1
4 2012/05/30 3
作成された日付の間に存在するレコードを見つけて、Date と RecordId を指定する必要があります。
カップルの例:
- 与えられた場合: RecordId=4 および Date=2012/05/15 RecordId=1 のレコードを返す必要があります
- 与えられた場合: RecordId=4 and Date=2012/05/25 RecordId=3 のレコードを返す必要があります
- 与えられた場合: RecordId=2 および Date=2012/06/10 RecordId=2 のレコードを返す必要があります
- 与えられた場合: RecordId=2 and Date=2012/01/01 NULL を返す必要があります
- 与えられた場合: RecordId=1 and Date=2012/06/01 RecordId=4 のレコードを返す必要があります
これは結合と計算の複雑なセットでなければならないと思います。私は数時間苦労して成功しませんでした。
実装する必要があるメソッドのモックアップは次のとおりです。
public Record GetRecord(int RecordId, DateTime Date)
{
var query = ???
return query;
}