![]() |
#9 |
Участник
|
Вопрос по деревьям:
Строится отчёт Excel, есть поле Отдел продаж(salesUnitid), там дерево. Нужно сделать выборку по этому полю и чтобы в отчёт попадали те строки, которые соответствуют выбранному уровню, то есть, если выбран отдел продаж, нужно выбирать все строки, которые соответствуют нижнему уровню отдела продаж(БП,РФ,ДЗАт и т.д.), а если выбран один из нижних уровней - строки только нижнего уровня. То есть, чтобы раскрытие дерева шло вниз. Посоветовали использовать List и в цикле прогонять каждый раз, но не совсем представляю как это сделать, показали пример на cte, но у меня запрос не на чистом sql, а на аксаптовском sql, если можно так выразиться, так что не думаю, что мне cte подойдёт. Может кто подсказать в какую сторону копать и с чего начинать проход ? Почитал на форуме ещё, что можно Map-ы использовать для этого дела... Я так понимаю, по таблице SMMSALESUNIT и сравнивать PARENTID и SALESUNITID , но что-то голова не работает... Что-то вроде X++: while select salesunitid from SmmSalesUnit where .SmmSalesUnit salesunitid like SmmSalesUnit .parentid { List.add(salesunitid); } Последний раз редактировалось user_ax; 12.04.2013 в 16:53. |
|