TOAD, значения даты, флаг, тераданные, предыдущая запись

У меня есть большой набор данных с датами начала и окончания в каждой записи.

Существует одно уникальное значение поля, которое мы можем назвать Uniq1.

Каждая запись имеет Uniq1.

Другие поля могут называться MID, PrDl, PsDl.

Uniq1, MID являются целыми числами.

Что мне нужно сделать, так это вывести набор данных (думая о SelfJoin) из этого набора данных, в котором каждая запись помечена знаком «да» или «нет» (1 или 0), где 1 = запись, за датой окончания которой следует дата начала другой записи в пределах 30 дней с даты остановки.

Это будет характерно для MId, так что если MId 1 имеет 6 записей в хронологическом порядке, а вторая запись была допущена в течение 30 дней после даты окончания предыдущей записи, вторая запись будет помечена = 1, а исходная запись будет помечена как 0 и среди 4 последующих записей для MId 1 нет других подобных 30-дневных вхождений, поэтому они также отмечены флажком = 0.

В идеале я хотел бы, например, следующий вывод:

Uniq1 MId Старт Стоп #Дней Флаг PrDl PsDl

123 1 24.01.2010 04.02.2010 0 CharValue CharValue

321 1 25.02.2010 05.03.2010 21 1 CharValue CharValue

789 1 21.06.2010 28.06.2010 116 0 CharValue CharValue

Обратите внимание, что количество дней между Uniq1-123 и Uniq1-321 равно 21, поэтому флаг = 1, однако между Uniq1-321 и Uniq1-789 количество дней равно 116, а флаг = 0.

Буду рад любому совету, спасибо


person user1863957    schedule 29.11.2012    source источник
comment
Что вы пробовали? См. мой ответ здесь. Вы должны быть в состоянии получить свое решение из SQL там. Если вы застряли, отредактируйте свой вопрос с помощью SQL, и я постараюсь помочь.   -  person Rob Paller    schedule 29.11.2012