Автоматизация, Программирование

SQL. Оптимизируем процесс поиска системности нарушений по каждому сотруднику

Время прочтения: 2 мин.

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

Чтобы сделать вывод о необходимости применения наказания проводится анализ повторяющихся нарушений за последние 12 месяцев. Поскольку анализ в ручном режиме занимал существенное время, было решено оптимизировать этот процесс.

Так, в MС Ассеss мы реализовали алгоритм автоматического поиска повторяющихся нарушений в Базе Данных по табельному номеру сотрудника, допустившего нарушение. Автоматический поиск запрашиваемых данных осуществляется при помощи запроса SQL. В результате формируется отчет за последние 12 месяцев с перечнем сотрудников, допустивших нарушения, указанием количества повторных случаев, видов нарушений и вида ответственности.

Итак, предлагаем вашему вниманию практический инструмент, который позволит вам существенно сэкономить время для данной процедуры.  

—Выбираем необходимые столбцы из базы данных: в нашем случае это столбцы, содержащие информацию о номере контрольной процедуры, дате акта, подразделении, ФИО сотрудника, табельном номере, должности сотрудника, пункте акта, номере бизнес-процесса, типе нарушения, количестве случаев, виде ответственности.

SELECT migr_vw_rep_VROS.KM_ID, migr_vw_rep_VROS.ActDate, migr_vw_rep_VROS.TB, migr_vw_rep_VROS.Division, migr_vw_rep_VROS.EmployeeFIO, migr_vw_rep_VROS.EmployeeTNum, migr_vw_rep_VROS.EmployeePosition, migr_vw_rep_VROS.ActPunkt, migr_vw_rep_VROS.ProcessStep, migr_vw_rep_VROS.MatrixPunkt, migr_vw_rep_VROS.ViolationTime, migr_vw_rep_VROS.ORDNum,

—форматирование столбца «табельный номер1»  до 8 знаков. Этот шаг необходим чтобы соблюсти размерность поля в соответствии с форматом базы данных  

migr_vw_rep_VROS.PunishmentMatrix,FORMAT([EmployeeTNum],"00000000") AS EmployeeTNum1

FROM migr_vw_rep_VROS

— выбор подразделения

WHERE  migr_vw_rep_VROS.[TB]="СЗБ" AND 

— получение даты  акта  от  текущей даты за минусом 365 дней

(migr_vw_rep_VROS.[ActDate])>(DATE( )-365);  

При помощи данного скрипта из базы данных формируется выгрузка с указанием сотрудников, допустивших нарушения, указанием количества случаев повторяемости нарушений, вида нарушений, вида ответственности.

Данный пример наглядно демонстрирует, как можно с помощью простого запроса SQL оптимизировать процедуру по анализу повторяющихся нарушений, и в дальнейшем, оценить систему внутреннего контроля в подразделении.

Советуем почитать