Я впервые использую команду CONNECT BY и понимаю, что с ее помощью можно создавать циклы. Я пытался создать запрос, который генерирует строку для каждой метки времени между временем начала и временем окончания с переменным интервалом. Когда я запускаю этот запрос для каждого «маршрута» в отдельности, он работает отлично. Но когда я пытаюсь запустить его для обоих маршрутов одновременно, цикл продолжается.
Что я делаю неправильно?
SELECT ROUTE_NAME, START_TIME + (LEVEL - 1) * TIME_PERIOD OUTPUT_MOMENT
FROM (SELECT *
FROM (SELECT 1 / 24 AS TIME_PERIOD,
SYSDATE - 8 / 24 AS START_TIME,
SYSDATE + 3 / 24 AS END_TIME,
'ROUTE A' ROUTE_NAME
FROM DUAL
UNION ALL
SELECT 1 / 48 AS TIME_PERIOD,
SYSDATE - 8 / 24 AS START_TIME,
SYSDATE + 3 / 24 AS END_TIME,
'ROUTE B' ROUTE_NAME
FROM DUAL)
WHERE ROUTE_NAME IN ('ROUTE A')
--WHERE ROUTE_NAME IN ('ROUTE B')
--WHERE ROUTE_NAME IN ('ROUTE A', 'ROUTE B')
)
CONNECT BY (LEVEL - 1) <= (END_TIME - START_TIME) / TIME_PERIOD
Результат на маршруте А:
* ROUTE_NAME OUTPUT_MOMENT
* ROUTE A 9/3/2018 5:41:01
* ROUTE A 9/3/2018 6:41:01
* ROUTE A 9/3/2018 7:41:01
* ROUTE A 9/3/2018 8:41:01
* ROUTE A 9/3/2018 9:41:01
* ROUTE A 9/3/2018 10:41:01
* ROUTE A 9/3/2018 11:41:01
* ROUTE A 9/3/2018 12:41:01
* ROUTE A 9/3/2018 13:41:01
* ROUTE A 9/3/2018 14:41:01
* ROUTE A 9/3/2018 15:41:01
Результаты на маршруте B:
* ROUTE_NAME OUTPUT_MOMENT
* ROUTE B 9/3/2018 5:42:34
* ROUTE B 9/3/2018 6:12:34
* ROUTE B 9/3/2018 6:42:34
* ROUTE B 9/3/2018 7:12:34
* ROUTE B 9/3/2018 7:42:34
* ROUTE B 9/3/2018 8:12:34
* ROUTE B 9/3/2018 8:42:34
* ROUTE B 9/3/2018 9:12:34
* ROUTE B 9/3/2018 9:42:34
* ROUTE B 9/3/2018 10:12:34
* ROUTE B 9/3/2018 10:42:34
* ROUTE B 9/3/2018 11:12:34
* ROUTE B 9/3/2018 11:42:34
* ROUTE B 9/3/2018 12:12:34
* ROUTE B 9/3/2018 12:42:34
* ROUTE B 9/3/2018 13:12:34
* ROUTE B 9/3/2018 13:42:34
* ROUTE B 9/3/2018 14:12:34
* ROUTE B 9/3/2018 14:42:34
* ROUTE B 9/3/2018 15:12:34
* ROUTE B 9/3/2018 15:42:34
* ROUTE B 9/3/2018 16:12:34
* ROUTE B 9/3/2018 16:42:34
Результаты по обоим (существует больше строк):
* ROUTE_NAME OUTPUT_MOMENT
* ROUTE A 9/3/2018 5:43:21
* ROUTE A 9/3/2018 6:43:21
* ROUTE A 9/3/2018 7:43:21
* ROUTE A 9/3/2018 8:43:21
* ROUTE A 9/3/2018 9:43:21
* ROUTE A 9/3/2018 10:43:21
* ROUTE A 9/3/2018 11:43:21
* ROUTE A 9/3/2018 12:43:21
* ROUTE A 9/3/2018 13:43:21
* ROUTE A 9/3/2018 14:43:21
* ROUTE A 9/3/2018 15:43:21
* ROUTE B 9/3/2018 11:13:21
* ROUTE B 9/3/2018 11:43:21
* ROUTE B 9/3/2018 12:13:21
* ROUTE B 9/3/2018 12:43:21
* ROUTE B 9/3/2018 13:13:21
* ROUTE B 9/3/2018 13:43:21
* ROUTE B 9/3/2018 14:13:21
* ROUTE B 9/3/2018 14:43:21
* ROUTE B 9/3/2018 15:13:21
* ROUTE B 9/3/2018 15:43:21
* ROUTE B 9/3/2018 16:13:21
* ROUTE B 9/3/2018 16:43:21
* ROUTE B 9/3/2018 10:43:21
* ROUTE B 9/3/2018 11:13:21
* ROUTE B 9/3/2018 11:43:21
* ROUTE B 9/3/2018 12:13:21
* ROUTE B 9/3/2018 12:43:21
* ROUTE B 9/3/2018 13:13:21
* ROUTE B 9/3/2018 13:43:21
* ROUTE B 9/3/2018 14:13:21
* ROUTE B 9/3/2018 14:43:21
* ROUTE B 9/3/2018 15:13:21
* ROUTE B 9/3/2018 15:43:21
* ROUTE B 9/3/2018 16:13:21
* ROUTE B 9/3/2018 16:43:21
* ROUTE B 9/3/2018 10:13:21
* ROUTE A 9/3/2018 15:43:21
* ROUTE B 9/3/2018 11:13:21
* ROUTE B 9/3/2018 11:43:21
* ROUTE B 9/3/2018 12:13:21
* ROUTE B 9/3/2018 12:43:21
* ROUTE B 9/3/2018 13:13:21
* ROUTE B 9/3/2018 13:43:21
* ROUTE B 9/3/2018 14:13:21
* ROUTE B 9/3/2018 14:43:21
* ROUTE B 9/3/2018 15:13:21
* ROUTE B 9/3/2018 15:43:21
* ROUTE B 9/3/2018 16:13:21
* ROUTE B 9/3/2018 16:43:21
* ROUTE B 9/3/2018 10:43:21
* ROUTE B 9/3/2018 11:13:21
* ROUTE B 9/3/2018 11:43:21
* ROUTE B 9/3/2018 12:13:21
* ROUTE B 9/3/2018 12:43:21
* ROUTE B 9/3/2018 13:13:21
* ROUTE B 9/3/2018 13:43:21
* ROUTE B 9/3/2018 14:13:21
* ROUTE B 9/3/2018 14:43:21
* ROUTE B 9/3/2018 15:13:21
* ROUTE B 9/3/2018 15:43:21
* ROUTE B 9/3/2018 16:13:21
* ROUTE B 9/3/2018 16:43:21
* ROUTE B 9/3/2018 9:43:21
* ROUTE A 9/3/2018 14:43:21
* ROUTE A 9/3/2018 15:43:21
* ROUTE B 9/3/2018 11:13:21
* ROUTE B 9/3/2018 11:43:21
* ROUTE B 9/3/2018 12:13:21
* ROUTE B 9/3/2018 12:43:21
* ROUTE B 9/3/2018 13:13:21
* ROUTE B 9/3/2018 13:43:21
* ROUTE B 9/3/2018 14:13:21
* ROUTE B 9/3/2018 14:43:21
* ROUTE B 9/3/2018 15:13:21
* ROUTE B 9/3/2018 15:43:21
* ROUTE B 9/3/2018 16:13:21
* ROUTE B 9/3/2018 16:43:21
* ROUTE B 9/3/2018 10:43:21
* ROUTE B 9/3/2018 11:13:21
* ROUTE B 9/3/2018 11:43:21
* ROUTE B 9/3/2018 12:13:21
* ROUTE B 9/3/2018 12:43:21