-
Всем доброго времени суток!
Есть запрос, возвращающий данные вида:
type | subtype | value | official_inf _________________________________ тип1 | подтип1 | значение1 | служ.ифн.1 тип1 | подтип1 | значение2 | служ.ифн.1 тип1 | подтип1 | значение3 | служ.ифн.1 тип2 | подтип1 | значение1 | служ.ифн.1 тип2 | подтип1 | значение2 | служ.ифн.1 тип2 | подтип1 | значение3 | служ.ифн.1
можно ли его преобразовать таким образом, чтобы dxDBTreeList отобразил все это в "хорошем" виде? Если можно, то как?
-
т.е. тип и подтип - это как бы папки, если по аналогии с визуальным деревом, а значениеХ - ветки?
-
> clickmaker © (24.06.09 14:32) [1]
да
-
мало информации по структуре исх.данных, но в любом случае для результата нужен первичный ключ и поле со ссылкой на родительскую запись
-
> Онотоле (24.06.09 14:55) [3]
структура совсем исходных данных эээ... там запрос длинный... первичный ключ есть.
> поле со ссылкой на родительскую запись
не совсем понял, что имелось в виду?
нужно как-то транспонировать все это дело в:
id | parent | value
1 | 0 | тип1 2 | 1 | подтип1 3 | 2 | значение1 4 | 2 | значение2 5 | 2 | значение3
ну и так далее... в общем, не так уж и важно, чтоб это все было обязательно запросом - можно и процедурой, лишь бы шустро выполнялось все это...
записей порядка сотни тысяч
-
наверно, как-то так
declare crs cursor for select type, subtype, value, official_inf from SrcTable
while (1=1) begin fetch next from crs into @type, @subtype, @value, @official_inf if @@fetch_status <> 0 break
select @typeid = id from DestTable where value = @type if @typeid is null begin insert into DestTable (parent, value) values(0, @type) set @typeid = @@identity end select @subtypeid = id from DestTable where parentid = @typeid and value = @subtype if @subtypeid is null begin insert into DestTable (parent, value) values(@typeid , @subtype) set @subtypeid = @@identity end select @valueid = id from DestTable where id = @subtypeid and value = @value if @valueid is null begin insert into DestTable (parent, value) values(@subtypeid , @value) end end
-
я пользуюсь union - ом, собирая подобные конструкции
-
> clickmaker © (24.06.09 16:14) [5]
ну так-то... вероятно, больше никак...
Всем спасибо, тема закрыта.
-
> я пользуюсь union - ом, собирая подобные конструкции
Запаришься тут union-ом...
-
> Запаришься тут union-ом...
Эт точно. connect by - наше все :)
|