|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.10.2021, 00:03 | #1 |
Регистрация: 01.10.2021
Сообщений: 9
|
Анализ допустимости переходов в цикле в PostrgSQL
Есть таблица ObjectsHistory oh, в которой описаны переходы Объектов из статуса в статус (прилагается, лист "Исходные данные").
Есть правила: из какого статуса в какие статусы переходы являются допустимыми, а в какие - недопустимыми. Эти правила заданы на листе "Допустимые переходы". История каждого объекта должна начинаться только со Статуса ObjectStatus1, любой другой статус в начале истории объекта - Incorrect Переход из ObjectStatus7 в ObjectStatus8 и из ObjectStatus8 в ObjectStatus7 допускается только в случае, если он осуществлен Системой (CreatedBy = 'System'). Как сформировать выгрузку таблицы с дополнительной колонкой "StatusChangeIsCorrect", в которой будет сделана отметка о допустимости или недопустимости каждого из переходов (Correct, Incorrect)? Прилагается файл, вид итоговой выборки - на листе "Конечный результат". |
06.10.2021, 12:20 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
не очень понятно - каким боком Эксель к SQL относится, но в общем случае я бы сделал так:
1. Все допустимые ограничения записал бы в таком виде createdBy, Status_start, Status_end, inStart null, status1, status2, 1 system, status1, status8, 0 null, status2, status1, 0 null, status2, status3, 0 где inStart - 0/1 в зависимости от того, начало истории или нет потом на основе исходных данных строить цепочки переходом и сверять их с текущей таблицей допустимых - соответственно выставлять нужный статус correct/incorrect честно скажу - на знаю как такое реализовать силами только SQL если задача не теоретическая/учебная - я бы подумал об изменении формата хранения входных данных, а именно - записывал бы еще в одно поле - из какого статуса переходит, и является ли запись началом истории объекта... ну и циклы в SQL - то еще зло |
25.10.2021, 15:38 | #3 |
Регистрация: 01.10.2021
Сообщений: 9
|
Спасибо! Да, допустимые ограничения примерно в таком виде записываю в таблице в БД. Вся проблема в том, как сделать оптимальный цикл, т.к. циклы в SQL действительно медленно проходят, а данных много.
|
25.10.2021, 15:38 | #4 |
Регистрация: 01.10.2021
Сообщений: 9
|
Закрываю вопрос. Вопрос отпал.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена временных таблиц в PostrgSQL | NatM | SQL, базы данных | 1 | 25.10.2021 15:34 |
Отслеживание переходов | bpystep | Помощь студентам | 1 | 01.04.2012 13:40 |
Предусмотреть возможность раздельного изменения составных частей адреса и проверки допустимости вводимых значений | Firagon | C# (си шарп) | 3 | 08.06.2011 10:43 |
Анализ интернет странички в цикле? | DelPavel | Общие вопросы Delphi | 5 | 01.12.2009 16:58 |
Счётчик переходов по ссылке | boro-da | HTML и CSS | 1 | 31.03.2009 11:14 |