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

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


Как сформировать выгрузку таблицы с дополнительной колонкой "StatusChangeIsCorrect", в которой будет сделана отметка о допустимости или недопустимости каждого из переходов (Correct, Incorrect)?
Прилагается файл, вид итоговой выборки - на листе "Конечный результат".
Прикрепленные файлы:
TablesStatusChange.xls
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. МихаилМ 01.10.21 14:54 Сейчас в теме
3. user1670687 01.10.21 17:26 Сейчас в теме
4. GPL 3 04.10.21 12:45 Сейчас в теме
(3) ну, 1С специально сделана так, чтобы работать максимально инвариантно относительно СУБД, на которой она базируется. и сам принцип 1С заключается в том, что получать результаты с помощью объектов встроенного языка. да, существуют разные нестандартные навороты типа добавления индексов, но, прямые запросы к СУБД практикуются редко.

с точки зрения 1С Ваше решение отдаёт матёрым извращением. нужно запрос сделать, где для каждой строки находить последующее состояние и из полученного результата отфильтровать строки с парами <соединениеДо, соединениеПосле>, которые недопустимы. если я правильно понял вопрос
5. user1670687 07.10.21 20:54 Сейчас в теме
Это вопрос по PostrgrSQL, с тегом PostrgrSQL. К 1С не имеет отношения.
6. user1670687 25.10.21 15:39 Сейчас в теме
Закрываю вопрос. Вопрос отпал.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот