Хранимая процедура для получения и проверки данных из одной таблицы с использованием mysql - PullRequest
0 голосов
/ 07 ноября 2019

Я новичок в MySQL и концепции БД и застрял в хранимых процедурах.

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

У каждой строки есть имя столбца, код, время начала (DD / int),длительность (часы / int), startwith, startafter и т. д.

Мое требование - написать хранимую процедуру с условиями циклических записей таблицы Условие 1: если время начала не равно нулю в таблице A, вставьте в таблицу B с помощьюимя, код, startTime (временная метка, вычисленная из времени начала), конечное время (временная метка, вычисленная из продолжительности), startwith, startafter

Условие 2: если какая-либо строка имеет startwith или startafter и совпадает с кодом из предыдущих вставленных строкзатем при вставке в таблицу B с сохранением времени начала строки 2 после времени окончания предыдущей вставленной строки

Необходимо проверить это для каждой строки. «startwith» и «startafter» могут присутствовать в нескольких строках с одинаковым «code»

Условие: только любой из столбцов «starttime», «startwith», «startafter» будет не нулевым

'Name' 'code' 'starton'     'starttime',    'startwith',      'startafter'  'Duration'
 ABC  abc_efg     03          9               null              null          10
nfg  cpd_hnb     null        null            null               abc_efg       20
gfg  dfd_hab     null        null           abc_efg             cpd_hnb       5
gdf  ergd_hab    19         null           cpd_hnb             null          11

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

Я хочу нажать этот путь Имя кода startdate endDate 'ABC', 'abc_efg', '2010-03-03 09:00:00 ',' 2010-07-19 23: 59: 00 '

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