Учитывая таблицу, как это:Выберите запись самолечением иерархии, которая попадает в диапазон дат
RecordId CreatedDate ParentRecordId
1 2012/05/10 NULL
2 2012/05/13 NULL
3 2012/05/20 1
4 2012/05/30 3
Мне нужно выяснить, запись, которая находится между созданы даты дают даты и RecordId.
примеры Пара:
- Если Дано: RecordId = 4 и Date = 2012/05/15 Мне нужно вернуть запись с RecordId = 1
- если Дано: RecordId = 4 и Date = 2012/05/25 Мне нужно вернуть запись с RecordId = 3
- Если дано: RecordId = 2 и Date = 2012/06/10 Мне нужно вернуть запись с RecordId = 2
- Если дано: RecordId = 2 и Дата = 2012/01/01 Мне нужно вернуть NULL
444 +42760359211350144688888 Если Дано: RecordId = 1 и Date = 2012/06/01 Мне нужно вернуть запись с RecordId =
Я думаю, что это должно быть сложным набором соединений и расчеты, Я борется за пару часов без каких-либо успехов.
Вот макет метода мне нужно реализовать:
public Record GetRecord(int RecordId, DateTime Date)
{
var query = ???
return query;
}
@ user194076 Если мой ответ ответит на ваш вопрос, отметьте его как таковой :) – JAM
Эй, спасибо за ваш ответ. Я действительно получил идею от вашего кода, окончательный код немного отличается, но спасибо большое! – user194076