Приветствую.
Есть ли возможность выбрать одним запросом данные рекурсивно:
Есть РегистрСведений.ТехнологическиеКарты, структура:
Измерения:
Номенклатура, Характеристика, Комплектующая, ХарактеристикаКомплектующей
Ресурсы:
КоличествоКомплектующей
Все дело в том, что Комплектующая так же может быть описана другой технологической картой.
Возможно ли это выбрать одним запросом?
Есть ли возможность выбрать одним запросом данные рекурсивно:
Есть РегистрСведений.ТехнологическиеКарты, структура:
Измерения:
Номенклатура, Характеристика, Комплектующая, ХарактеристикаКомплектующей
Ресурсы:
КоличествоКомплектующей
Все дело в том, что Комплектующая так же может быть описана другой технологической картой.
Возможно ли это выбрать одним запросом?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ну и к чему все свелось?
Пока МаксимальнаяДлинаЗамыканий < МаксимальнаяДлинаПути Цикл
Запрос.Текст = Запрос.Текст + СтрЗаменить(СтрЗаменить(Рефрен, "#1", Формат(МаксимальнаяДлинаЗамыканий, "ЧГ=0")), "#2", Формат(2 * МаксимальнаяДлинаЗамыканий, "ЧГ=0"));
МаксимальнаяДлинаЗамыканий = 2 * МаксимальнаяДлинаЗамыканий
КонецЦикла;
в цикле производится какое-то максимальное разворачивание по группам тоже самое что иногда встречается в запроса
Выбрать
спр.Родитель,
спр.Родитель.Родитель,
спр.Родитель.Родитель.Родитель,
спр.Родитель.Родитель.Родитель.Родитель,
и т.д. у кого какая вложенность
но это все именно ручками, или как в вашем примере в какойто процедуре при заданном количестве вложенности
Пока МаксимальнаяДлинаЗамыканий < МаксимальнаяДлинаПути Цикл
Запрос.Текст = Запрос.Текст + СтрЗаменить(СтрЗаменить(Рефрен, "#1", Формат(МаксимальнаяДлинаЗамыканий, "ЧГ=0")), "#2", Формат(2 * МаксимальнаяДлинаЗамыканий, "ЧГ=0"));
МаксимальнаяДлинаЗамыканий = 2 * МаксимальнаяДлинаЗамыканий
КонецЦикла;
в цикле производится какое-то максимальное разворачивание по группам тоже самое что иногда встречается в запроса
Выбрать
спр.Родитель,
спр.Родитель.Родитель,
спр.Родитель.Родитель.Родитель,
спр.Родитель.Родитель.Родитель.Родитель,
и т.д. у кого какая вложенность
но это все именно ручками, или как в вашем примере в какойто процедуре при заданном количестве вложенности
(5) Не "какое-то максимальное разворачивание", как вы написали, а очень эффективное.
В цикле строится запрос и да - необходимо ограничить максимальную длину пути.
Но в отличие от альтернативных вариантов, количество этапов выполнения запроса получается на порядки меньше (там нелинейная зависимость относительно уровня вложенности). И можно не бояться ставить заведомо большую максимальную длину пути.
Т.е. на практических задачах - практически универсальное решение таки одним запросом.
ЗЫ. 30 уровней вложенности покрываются одним пакетным запросом из 6 запросов. Десять запросов в пакете покроют 500 уровней вложенности.
В цикле строится запрос и да - необходимо ограничить максимальную длину пути.
Но в отличие от альтернативных вариантов, количество этапов выполнения запроса получается на порядки меньше (там нелинейная зависимость относительно уровня вложенности). И можно не бояться ставить заведомо большую максимальную длину пути.
Т.е. на практических задачах - практически универсальное решение таки одним запросом.
ЗЫ. 30 уровней вложенности покрываются одним пакетным запросом из 6 запросов. Десять запросов в пакете покроют 500 уровней вложенности.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот