При этом данные в таблицу по UDP протоколу пишутся в бинарном формате, и выглядит это примерно так:
Триггер обрабатывающий бинарную строку состояния агрегата находится в гитхабе моем гитхабе https://github.com/boolkin/scripts/blob/master/SQL/AOM/%D1%82%D1%80%D0%B8%D0%B3%D0%B3%D0%B5%D1%80%20unscale.txt
Там происходит расшифровка данных и как раз та самая логика по проверке предыдущего состояния и нынешнего, и в зависимости от этого строка добавляется или обновляется.
так же там есть триггер который обрабатывает выведение турбин из работы: аналогично если число показывающее количество турбин в работе изменилось, то если оно уменьшилось то добавляется номер турбины в столбец выведения, а если увеличилось то в столбец введения в работу. плюс затем еще и переименовывается номер в человеческое имя.
Наиболее интересно было попробовать заюзать цикл: необходимо было посчитать время которое турбина была выведена из работы - алгоритм такой что ищем название этой турбины в столбце выведения, затем ищем его в столбце введения - считаем время этого промежутка, продолжаем поиск по этому же алгоритму и прибавляем ко времени промежутка следующий - это все было добавлено в скалярную функцию и затем получилось выводить в виде таблицы отчета.
Комментариев нет:
Отправить комментарий