0

次のようなテーブルを指定します。

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 を指定する必要があります。

カップルの例:

  1. 与えられた場合: RecordId=4 および Date=2012/05/15 RecordId=1 のレコードを返す必要があります
  2. 与えられた場合: RecordId=4 and Date=2012/05/25 RecordId=3 のレコードを返す必要があります
  3. 与えられた場合: RecordId=2 および Date=2012/06/10 RecordId=2 のレコードを返す必要があります
  4. 与えられた場合: RecordId=2 and Date=2012/01/01 NULL を返す必要があります
  5. 与えられた場合: RecordId=1 and Date=2012/06/01 RecordId=4 のレコードを返す必要があります

これは結合と計算の複雑なセットでなければならないと思います。私は数時間苦労して成功しませんでした。
実装する必要があるメソッドのモックアップは次のとおりです。

public Record GetRecord(int RecordId, DateTime Date)
{
  var query = ???
  return query;
}
4

1 に答える 1