Анализ допустимости переходов в цикле в PostrgSQL

Есть таблица ObjectsHistory oh, в которой описаны переходы Объектов из статуса в статус (прилагается, лист "Исходные данные"). Есть правила: из какого статуса в какие статусы переходы являются допустимыми, а в какие - недопустимыми. Эти правила заданы на листе "Допустимые переходы". История каждого объекта должна начинаться только со Статуса ObjectStatus1, любой другой статус в начале истории объекта - Incorrect Переход из ObjectStatus7 в ObjectStatus8 и из ObjectStatus8 в ObjectStatus7 допускается только в случае, если он осуществлен Системой (CreatedBy = 'System').

Как сформировать выгрузку таблицы с дополнительной колонкой "StatusChangeIsCorrect", в которой будет сделана отметка о допустимости или недопустимости каждого из переходов (Correct, Incorrect)? Прилагается файл, вид итоговой выборки - на листе "Конечный результат".

Ссылка на файл TablesStatusChange с листами "Исходные данные", "Допустимые переходы", "Конечный результат".


Ответы (0 шт):