|
Из диапазона дат получить только вторники и четверги
|
|||
---|---|---|---|
#18+
Добрый день, Форум! Задача: Из диапазона дат (c 01 сентября по 31 мая) получить только те первые 10 дат, которые выпадают только на понедельник и среду. Моё решение (не работает): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
* В APEX_STRING.SPLIT передаётся значение параметра Popup LOV с разрешённым multiselect. Здесь же просто подставил значение из параметра. Результат: result_datedow06.09.2021113.09.2021120.09.2021127.09.2021104.10.2021111.10.2021118.10.2021125.10.2021101.11.2021108.11.20211 В результирующем наборе видно, что выдаются первые 10 понедельников, пропуская среды. Если уменьшить диапазон до месяца, то в таком случае выдаётся всё корректно, но тогда теряется универсальность (возможно нет) метода. Вопрос: каким образом выводить ещё и среды? Окружение: Код: plsql 1.
BANNEROracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Код: plsql 1.
VERSION_NOAPI_COMPATIBILITYPATCH_APPLIED20.2.0.00.202020.10.01APPLIED *БД - ATP(Always free) в Oracle cloud ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2021, 11:27 |
|
Из диапазона дат получить только вторники и четверги
|
|||
---|---|---|---|
#18+
Форум! А ларчик просто открывался: 1. Отказаться от конструкции TABLE() в пользу прямой выборки из APEX_STRING.SPLIT() 2. Отказаться от конструкции IN() в пользу конструкции MEMBER OF Итог: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Результат: #RESULT_DATEDOW106.09.20211208.09.20213313.09.20211415.09.20213520.09.20211622.09.20213727.09.20211829.09.20213904.10.202111006.10.20213 P.S.: Очень хотел закрыть топик ответом - "Спасибо, разобрался сам!" (как здесь принято в большинстве постов), но все таки лучше прикладывать реализацию, даже если над ней думал несколько часов, а сразу после публикации вопроса пришло решение ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2021, 11:56 |
|
Из диапазона дат получить только вторники и четверги
|
|||
---|---|---|---|
#18+
Рустамка Очень хотел закрыть топик ответом - "Спасибо, разобрался сам!" Вот тут ошибка: Рустамка Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Оракл вычисляет роунумы ДО ордер бая. Это азы ваще-та. То, что решение работает - это случайная магия данных. Оно может перестать работать в любой момент абсолютно без какой-либо видимой причины. И первое решение можно было починить, просто вынеся сортировку во внешний запрос. Или с помощью row_number. Или кучей других способов. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2021, 15:30 |
|
|
Start [/forum/topic.php?fid=50&msg=40093852&tid=1873796]: |
0ms |
get settings: |
14ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
65ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
78ms |
get tp. blocked users: |
0ms |
others: | 8ms |
total: | 177ms |
0 / 0 |