|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Приветствую! И в очередной раз прошу помощи у форумчан.. Есть запрос: Код: 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. 26. 27. 28.
Можно ли тут вместо TRUNC(:REP_DATE) подставить перебор дат: Код: plsql 1. 2. 3. 4. 5.
Одним словом, надо получить все ph.MSISDN со статусом sh.STAT_ID = 1 на каждый день за период. Как бы это сделать в цикле за указанный диапазон дат?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 17:52 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Alexander Warlord, Не надо цикла. Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 18:00 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Alexander Warlord, я б перебором не делал брал пересечение "отчет за период" с BETWEEN sh.STIME AND sh.ETIME - 1 / 86400 ... ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 18:16 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Не совсем понял решение с join. Ведь ситуация в основном такая: номер 7777777 был со статусом 1 в период с ssh.STIME = '15.07.2020' и ssh.STIME = '05.09.2020'. Т.е., при ssh.STIME = '14.07.2020' или скажем ssh.STIME = '06.09.2020' - статус уже 2. Если я задаю период с 1 по 7 сентября, то должен получить: 01.09.2020 - 7777777 02.09.2020 - 7777777 03.09.2020 - 7777777 04.09.2020 - 7777777 05.09.2020 - 7777777 06.09.2020 07.09.2020 - тут его уже не будет. С чем же джойнить, если в SUBS_SERV_HISTORY только две даты.. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 18:36 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Alexander Warlord ssh.STIME = '05.09.2020' ssh.ETIME = '05.09.2020' ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 18:37 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Видимо я что-то не так делаю: Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Дает только один результат: CRE_DATE MSISDN SUBS_ID SSTAT_ID SSTAT_NAME DAT02.09.2020 7257840 1854953 1 Активна 02.09.2020 Хотя для него STIME = 02.09.2020 0:00:40 и ETIME = 05.09.2020 0:00:43 И мне надо было получить по крайней мере записи за 3 дня: 02.09, 03.09, 04.09. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 09:24 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Alexander Warlord Если я задаю период с 1 по 7 сентября, то должен получить: имхо самое простое, получите диапазоны с 01 по 05 -1 с 06 по 06 -<>1 c 07 по 07 -1 и размножте (если надо) вариантов несколько, один из CONNECT BY LEVEL <= end_date - beg_date + 1 .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 10:42 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Вообщем, выкрутился так: Код: 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. 26. 27. 28. 29. 30. 31.
И чего мне это раньше в голову не пришло.. :) Просто считаю количество дней активности услуги. Потом уже сгруппирую по SUBS_ID и месяцам. Рассуждение в компании веселее, как известно)) а то эта самоизоляция и удалёнка уже туманит мозги) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 12:57 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Alexander Warlord Потом уже сгруппирую по SUBS_ID и месяцам. KOL_DAYS не совсем "на каждый день за период" ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 13:26 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Это да :) В целом изначально моя задача была выявить количество дней активности по абонентам за месяц. Для целостной картины хотел сделать прям по дням. Позже добью конечно. Сейчас главное отправить отчет и избавиться )) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 13:33 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Подскажите, а можно ли расположить данные с помощью запроса: CRE_DATE SSH_STIME SSH_ETIME KOL_DAYS SUBS_ID SSTAT_ID SSTAT_NAME03.09.2020 0:00 02.09.2020 07.09.2020 5 1771687 1 Активна в виде: CRE_DATE SSH_STIME SSH_ETIME KOL_DAYS SUBS_ID SSTAT_ID SSTAT_NAME03.09.2020 0:00 02.09.2020 03.09.2020 5 1771687 1 Активна03.09.2020 0:00 03.09.2020 04.01.1900 5 1771687 1 Активна03.09.2020 0:00 04.01.1900 05.09.2020 5 1771687 1 Активна03.09.2020 0:00 05.09.2020 06.09.2020 5 1771687 1 Активна03.09.2020 0:00 06.09.2020 07.09.2020 5 1771687 1 Активна ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 14:03 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Alexander Warlord Подскажите, а можно ли расположить данные с помощью запроса: 22193397 что не получается? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 14:06 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Alexander Warlord, Код: 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.
ps есть много вариантов, мне нравится с хмл ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 14:33 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Ух! благодарю) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 14:46 |
|
Запрос с перебором дат
|
|||
---|---|---|---|
#18+
Alexander Warlord Ух! благодарю) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 15:29 |
|
|
start [/forum/topic.php?fid=52&msg=39996310&tid=1880918]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 173ms |
0 / 0 |