Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
 Прошу Вас помочь SQL ORACLE  [new]
Stitch_80
Member

Откуда: Мос.обл. Лобня
Сообщений: 4
Добрый день !

Есть запрос, с параметром дата !
Мне нужно запустить его с переменной по времени

TO_DATE ('26.10.2020 0:00:00','DD.MM.YYYY HH24:MI:SS')
TO_DATE ('26.10.2020 0:05:00','DD.MM.YYYY HH24:MI:SS')+ interval '5'
TO_DATE ('26.10.2020 0:10:00','DD.MM.YYYY HH24:MI:SS')+ interval '5'

с 26.10.2020 00:00 по 26.10.2020 23:55
и так 288 раз.

То есть запрос должен отработать 288 раз и каждый раз сам менять интервал в 5 минут, это вообще реализуемо ?

Сам запрос очень большой в 400 строк если нужно выложу !
10 ноя 20, 15:37    [22229630]     Ответить | Цитировать Сообщить модератору
 Re: Прошу Вас помочь SQL ORACLE  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20765
CTE в том числе и для этого и придумали:
WITH cte AS ( SELECT 0 delta 
              UNION ALL
              SELECT delta + 5 FROM cte WHERE delta < 1440 )
SELECT ... ,
            TO_DATE ('26.10.2020 0:10:00','DD.MM.YYYY HH24:MI:SS')+ INTERVAL cte.delta MINUTE
...
FROM source_tables
CROSS JOIN cte
...
10 ноя 20, 15:45    [22229635]     Ответить | Цитировать Сообщить модератору
 Re: Прошу Вас помочь SQL ORACLE  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Stitch_80,

А результат запроса, запущенного 288 раз, для чего нужен?
10 ноя 20, 16:33    [22229665]     Ответить | Цитировать Сообщить модератору
 Re: Прошу Вас помочь SQL ORACLE  [new]
Stitch_80
Member

Откуда: Мос.обл. Лобня
Сообщений: 4
Есть запрос на еденицу времени ! например переменная ('19.10.2020 00:05','DD.MM.YYYY HH24:MI:SS')
и заказчик настаивает что его всё устраивает именно в таком формате как есть !
но необходимо что-бы отчёт отрабатывал каждые пять минут за сутки получается 288 раз

и весь результат через FastReport ему выбрасываю в csv. а он там графики рисует, и всякий анализ проводит !
10 ноя 20, 16:41    [22229670]     Ответить | Цитировать Сообщить модератору
 Re: Прошу Вас помочь SQL ORACLE  [new]
Stitch_80
Member

Откуда: Мос.обл. Лобня
Сообщений: 4
Akina, Спасибо что ответили,
не могу понять как это работает и примеров толковых не нашёл.

Если Вас не затруднит подскажите на примере !

SELECT
TB_STAT_FLIGHTS.ROTATION_OBJID AS INB_ID_RMS,
TB_STAT_FLIGHTS.ORG_AUTOID AS INB_AUTOID,
'Inbound' AS INB_BOUND,
TB_STAT_FLIGHTS.AIRLINE || ' ' || TB_STAT_FLIGHTS.TRIP AS INB_FLIGHT,
TB_STAT_FLIGHTS.AIRLINE AS INB_ID,
TB_STAT_FLIGHTS.AIRCRAFTTYPE AS INB_TYP,
TB_STAT_FLIGHTS.REG AS INB_REG,
CASE
WHEN TB_STAT_FLIGHTS.POS IS NULL THEN TB_STAT_FLIGHTS.GMSPOS
ELSE TB_STAT_FLIGHTS.POS
END AS INB_MC,
TB_STAT_FLIGHTS.BEST_TIME AS INB_BEST_TIME
FROM RT_SVO_STAT_LIVE95.TB_STAT_FLIGHTS
WHERE TB_STAT_FLIGHTS.BOUND = 1
AND TB_STAT_FLIGHTS.ROTATION_OBJID IS NULL
AND TB_STAT_FLIGHTS.BEST_TIME <= TO_DATE ('25.10.2020 00:00:00','DD.MM.YYYY HH24:MI:SS')
10 ноя 20, 17:44    [22229712]     Ответить | Цитировать Сообщить модератору
 Re: Прошу Вас помочь SQL ORACLE  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20765
Stitch_80
необходимо что-бы отчёт отрабатывал каждые пять минут за сутки получается 288 раз
Не понял... запрос должен запускаться каждые 5 минут, или один раз, но для 288 разных значений даты-времени?

Stitch_80
не могу понять как это работает

Находите и читаете всё по терминам:

- обобщенное табличное выражение
- common table expression
- WITH clause
- иерархические рекурсивные запросы
10 ноя 20, 19:05    [22229767]     Ответить | Цитировать Сообщить модератору
 Re: Прошу Вас помочь SQL ORACLE  [new]
Stitch_80
Member

Откуда: Мос.обл. Лобня
Сообщений: 4
Akina,
один раз, но для 288 разных значений даты-времени?

Спасибо за "помощь" :)
10 ноя 20, 22:38    [22229848]     Ответить | Цитировать Сообщить модератору
 Re: Прошу Вас помочь SQL ORACLE  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20765
Stitch_80
один раз, но для 288 разных значений даты-времени

Ну так CROSS JOIN именно это и делает. cte - в данном случае сгенерированная в запросе таблица, содержащая числа от 0 до 1440 с шагом 5.
11 ноя 20, 07:25    [22229934]     Ответить | Цитировать Сообщить модератору
Все форумы / Вопрос-Ответ Ответить