|
Connect by prior с прерыванием промежутков
|
|||
---|---|---|---|
#18+
Всем привет, нужна помощь в написании элегантного запроса, несколько часов пытаюсь победить и пока никак. Задача: есть временные пересекающиеся промежутки с пробелами: 04.02.2018-08.02.2018 09.02.2018-11.02.2018 11.02.2018-13.02.2018 13.02.2018-14.02.2018 15.02.2018-18.02.2018 18.02.2018-01.02.2018 нужно найти концы последовательно пересекающихся промежутков в который попадает определенная дата без прерывания, например 12.02.2018 попадает в промежуток 11.02.2018-13.02.2018, этот промежуток непрерывно связан с промежутками: 09.02.2018-11.02.2018 - 11.02.2018-13.02.2018 - 13.02.2018-14.02.2018, результат в данном случае должен быть промежуток: 09.02.2018 -14.02.2018 Данный промежуток нужно получить одним запросом, без использования конструкции WITH: что-то типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
но в данном случае возвращается промежуток 09.02.2018 - 18.02.2018, что не корректно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 14:32 |
|
Connect by prior с прерыванием промежутков
|
|||
---|---|---|---|
#18+
ВЕЗУНЧИК, Вот вы сейчас такой баян расчехлили, что я не удивлюсь, если вас с головой закидают ссаными тряпками... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 14:38 |
|
Connect by prior с прерыванием промежутков
|
|||
---|---|---|---|
#18+
ВЕЗУНЧИКВсем привет, нужна помощь в написании элегантного запроса, несколько часов пытаюсь победить и пока никак. несколько часов на написании элегантного запроса, маловато если не елегантно, то обьеденить интервальчики, и выдать с нужной датой .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 15:22 |
|
Connect by prior с прерыванием промежутков
|
|||
---|---|---|---|
#18+
Щукина Анна, Да задача не для слабонервных ;) и если кроме "санымх тряпок" в голове ничего, то лучше уж не писать коммент. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 15:29 |
|
Connect by prior с прерыванием промежутков
|
|||
---|---|---|---|
#18+
ВЕЗУНЧИКпересекающиеся промежуткисмежные ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 15:53 |
|
Connect by prior с прерыванием промежутков
|
|||
---|---|---|---|
#18+
-2-смежные для смежных задача упрощается Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 16:07 |
|
Connect by prior с прерыванием промежутков
|
|||
---|---|---|---|
#18+
ВЕЗУНЧИКно в данном случае возвращается промежуток 09.02.2018 - 18.02.2018, что не корректно. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 16:28 |
|
Connect by prior с прерыванием промежутков
|
|||
---|---|---|---|
#18+
SY, я благодарю тебя! Выше всех похвал!!! То что нужно. Я даже не знал, что "connect by" может пойти в обе стороны от start with. nocycle - это как я понимаю прерывание в случае зацикливания. Еще раз спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2019, 12:09 |
|
|
start [/forum/topic.php?fid=52&fpage=83&tid=1882759]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 292ms |
total: | 426ms |
0 / 0 |