2015-06-10 2 views
0

У меня есть таблица с множеством запланированных событий. Я хочу создать таблицу datawarehouse со всеми предстоящими событиями из этой таблицы настроек. Как я могу сделать это на следующей неделе? Некоторые события начинаются каждые 5 минут, ежечасно, 3 часа, ежедневно и так далее.таблица повторяющихся событий

Пример таблицы

Event_name, last_run, next_time, Intervallroundup5min 

Job1, 2015-06-10 14:48:03.147, 2015-06-10 14:49:00.000 , 5 

Job2, 2015-06-10 12:27:09.637, 2015-06-10 15:25:00.000, 180 
+0

Можете ли вы пояснить, что вы подразумеваете под «сделать это на следующей неделе»? Неясно, в чем проблема. –

+0

Какие РСУБД? В идеале вы можете использовать рекурсивный CTE, я думаю. – Andrew

+0

Мне нужна таблица с одной строкой на одно задание и время события, например «календаря» всех заданий на следующую неделю. Я использую SQL 2008r2. – user3519275

ответ

0

Если СУБД поддерживает рекурсивный КТР, вы можете сделать это:

with futurecte as 
(
    select event_name, 
    dateadd(mi,Intervallroundup5min,next_time) as NExtTime 
    ,Intervallroundup5min 
    from 
    table1 
    union all 
    select 
    event_name, 
    dateadd(mi,Intervallroundup5min,nexttime) 
    ,Intervallroundup5min 
    from 
    futurecte 
    where 
    dateadd(mi,Intervallroundup5min,nexttime) <= '2015-06-11' --end date 
) 
    select 
    event_name, 
    nexttime 
    from 
    futurecte 

Изменить дату окончания на то, что значение, которое вы хотите. SQL Fiddle

Смежные вопросы