Показать дату следующего события

Дизайн пользовательского интерфейса для хранения события и метаданных события

SQL TABLE DESIGN является

CREATE TABLE [dbo].[EVENTS]
([ID] [int] IDENTITY(1,1) NOT NULL,
 [Name] [nvarchar](255) NOT NULL)

а также

CREATE TABLE [dbo].[EVENTS_META](
[ID] [int] IDENTITY(1,1) NOT NULL,
[event_id] [int] NOT NULL,
[meta_key] [varchar](255) NOT NULL,
[meta_value] [bigint] NOT NULL)

Данные о событиях

Метаданные события

Я последовал заПовторение событий календаря и некоторые последние математические и я написал запрос ниже

СПИСОК ВСЕХ ДАТ СОБЫТИЙ ДО ДАННОЙ КОНЕЧНОЙ ДАТЫ

SELECT EV.*
FROM events AS EV
RIGHT JOIN events_meta AS EM1 ON EM1.event_id = EV.id
RIGHT JOIN events_meta AS EM2 ON EM2.meta_key = 'repeat_interval_'+ CAST(EM1.id as Varchar(100))
WHERE EM1.meta_key = 'repeat_start'
AND ((1391040000 - EM1.meta_value ) % EM2.meta_value) = 0

Я ничего не получаю. Я хочу отобразить все даты после repeat_start с заданным интервалом.

Пример: 1-е событие начинается (3 января 2014 г., 10:00) unixtimestamp = 1388743200 и продолжается каждую пятницу (7 дней), мы также планируем первое событие на субботу стартов (4 января 2014 г.) 1388858400 и продолжаем один раз в каждые 7 дней (суббота) )

Это может быть один раз в месяц / ежедневно / и т. Д. Итак, у нас естьinterval определяется как секунды.

Если я дам какой-то вклад, как 30 января 2014 года,i.e =1391040000 (30 января 2014 г. 00:00:00)

ожидаемый результат

Визит Билла, 3 января 2014 г. 10 часов утра

Визит Билла, 4 января 2014 г. 10 часов утра

Визит Билла, 10 января 2014 года 10 часов утра

Визит Билла, 11 января 2014 года 10 часов утра

Визит Билла, 17 января 2014 г. 10 часов утра

Визит Билла, 18 января 2014 г. 10:00

Визит Билла, 24 января 2014 г. 10 часов утра

Визит Билла, 25 января 2014 г. 10 часов утра

SQL FIDDLE LINK

Ответы на вопрос(5)

Ваш ответ на вопрос