Создайте непрерывный период, начиная с двух дат (для пары ID и Value) - PullRequest
0 голосов
/ 23 мая 2019

Я работаю с Oracle 11 и мне нужно восстановить период из таблицы, которая имеет 2 поля даты и 2 поля: идентификатор и процентное значение.

Если между датами есть непрерывность (для каждой пары ID и значения), я должен сообщить только одну строку, пока непрерывность не будет прервана. В противном случае я сообщаю период как прочитанный из таблицы.

Я не знаю, можно ли это сделать с помощью чистого SQL, или мне приходится полагаться на Курсор.

Это моя исходная таблица

ID  PercValue   START_DATE  END_DATE
1   50  01/01/2014  01/03/2014
1   50  01/04/2014  01/05/2014
1   53  01/06/2014  01/07/2014
1   53  01/08/2014  02/01/2014
1   60  02/02/2014  02/10/2014
1   60  02/11/2014  02/28/2014
1   60  03/10/2014  03/15/2014
2   60  03/15/2014  03/31/2014
2   61  04/01/2014  04/29/2014
2   61  05/01/2014  06/30/2014

И это моя цель

ID  PercValue   START_DATE  END_DATE
1   50  01/01/2014  01/05/2019
1   53  01/06/2014  02/01/2019
1   60  02/02/2019  02/28/2019
1   60  03/10/2019  03/15/2019
2   60  03/15/2019  03/31/2019
2   61  04/01/2019  04/29/2019
2   61  05/01/2019  06/30/2019

1 Ответ

0 голосов
/ 24 мая 2019
start_DATE >= to_date(substr(:from_date,1,10),'YYYY/MM/DD')
  end_DATE <= to_date(substr(:END_date,1,10),'YYYY/MM/DD')

используйте это как параметр даты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...