Заполнить таблицу из диапазона дат и параметров - PullRequest
0 голосов
/ 11 июня 2018

У меня есть таблица с разными программами.

При изменении конфигурации программы в мою БД добавляется событие с новыми параметрами.

Имеет несколько параметров: дата и время события , количество дней в неделю, когда оно активно, интенсивность, время начала и время окончания каждого дня.

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

Я хочу создать таблицу, в которой у меня будут повседневные мои разные программы и их параметры.

Пример желаемоговывод:

day        - program_code - intensity - start - end
01-01-2018 - 39           - 2         - 10    - 11
01-01-2018 - 40           - 4         - 14    - 15
02-01-2018 - 39           - 2         - 10    - 11
02-01-2018 - 40           - 4         - 14    - 15
The data stay the same until an event of configuration appears and changes 
the parameters, for example program 39 changes(40 stays the same) : 
03-01-2018 - 39           - 8         - 9     - 12
03-01-2018 - 40           - 4         - 14    - 15

И так каждый день у нас есть активные программы с их интенсивностью, их временем начала и окончания.

(я указал время в часах, но высм. идею).

Конечно, это будет применяться:

  • На количество дней, указанное в параметрах
  • И будет обновляться, когда новое событие показываетс тем же кодом программы

Я думаю создать хранимую процедуру с временной таблицей для этого, но я не знаю, как это сделать

Примечание: Параметр числа дней работает следующим образом:

1 = Sunday  
2 = Monday
3 = Tuesday  
...
7 = Saturday  
8 = All week  
9 = Weekend

Код:

CREATE TABLE events 
( `program_code` int(11) NOT NULL,
`program_datetime` datetime NOT NULL,
`days` varchar(40) DEFAULT NULL,
`intensity` varchar(40) DEFAULT NULL, 
`start` varchar(40) DEFAULT NULL, 
`end` varchar(40) DEFAULT NULL);
INSERT INTO events (`program_code`, `program_datetime`, `days`, `intensity`, `start`, `end`) 
VALUES 
(40, '2018-03-05 13:24:31','8', '1', '75600', '82800'),
(39, '2018-03-05 13:24:15','8', '2', '57600', '75600'),
(40, '2018-03-02 04:34:51','9', '2', '75600', '82800'),
(39, '2018-03-02 04:34:17','1', '3', '57600', '75600'),
(37, '2018-02-18 14:31:25', '2', '2', '25200', '39600'),
(39, '2018-01-23 13:02:00','7', '4', '64800', '75600');

DB FIDDLE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...