Вставить новую строку на основе данных в другой таблице - PullRequest
0 голосов
/ 25 июня 2018

(данные на самом деле не являются файлом журнала, но это упрощает запрос)

У меня есть данные журнала в строках таблицы с именем log, которые имеют определенные начальные и конечные точки.Например:

1001 | **start
1002 | log action
1003 | another action
1004 | log action
1005 | another action
1006 | **end
1007 | **start
1008 | log action
1009 | another action
1010 | log action
1011 | another action

У меня есть другая таблица с именем events, в которой хранятся время начала и окончания журнала, идентификатор и некоторые другие метаданные.

Данные внутри таблицы журналавставлено навалом.Я хотел бы, желательно в SQL, выполнить следующие действия:

  1. Извлечь строки между ** начало и ** конец

  2. Вставитьновая строка в события с временем начала и окончания

  3. Обновите строки, связанные с этим событием, с идентификатором события

Если первая записьон находит ** конец, он должен вообще пропустить это и искать следующий набор.Если в найденном наборе отсутствует конец **, он должен пропустить это, пока не найдет следующий набор.Поэтому в вышеприведенном примере строки со 1001 по 1006 будут использоваться для создания новой записи события и применения к ней идентификатора этих записей.

Логика этого относительно проста, если я запускаю отдельный процессон извлекает данные из SQL (используя BETWEEN), а затем выполняет свои собственные расчеты, однако в целом это выглядит грязно.Я ищу решение, чтобы сделать то же самое в SQL.

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