Показать сообщение отдельно
Старый 12.04.2013, 16:34   #9  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Вопрос по деревьям:

Строится отчёт 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.