![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как вернуть иерархические данные [D7, MSSQL]
serepun'ka © (2009-06-24 14:04:00)Всем доброго времени суток!
Есть запрос, возвращающий данные вида:
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 отобразил все это в "хорошем" виде? Если можно, то как?
ANB (2009-06-25 13:20:00) [1]
> Запаришься тут union-ом...
Эт точно. connect by - наше все :)
Ega23 (2009-06-24 17:49:00) [2]
> я пользуюсь union - ом, собирая подобные конструкции
Запаришься тут union-ом...
serepun'ka (2009-06-24 17:31:00) [3]
> clickmaker © (24.06.09 16:14) [5]
ну так-то... вероятно, больше никак...
Всем спасибо, тема закрыта.
Онотоле (2009-06-24 17:24:00) [4]я пользуюсь union - ом, собирая подобные конструкции
clickmaker (2009-06-24 16:14:00) [5]наверно, как-то так
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
serepun'ka (2009-06-24 15:13:00) [6]
> Онотоле (24.06.09 14:55) [3]
структура совсем исходных данных эээ... там запрос длинный...
первичный ключ есть.
> поле со ссылкой на родительскую запись
не совсем понял, что имелось в виду?
нужно как-то транспонировать все это дело в:
id | parent | value
1 | 0 | тип1
2 | 1 | подтип1
3 | 2 | значение1
4 | 2 | значение2
5 | 2 | значение3
ну и так далее... в общем, не так уж и важно, чтоб это все было обязательно запросом - можно и процедурой, лишь бы шустро выполнялось все это...
записей порядка сотни тысяч
Онотоле (2009-06-24 14:55:00) [7]мало информации по структуре исх.данных, но в любом случае для результата нужен первичный ключ и поле со ссылкой на родительскую запись
serepun'ka (2009-06-24 14:41:00) [8]
> clickmaker © (24.06.09 14:32) [1]
да
clickmaker (2009-06-24 14:32:00) [9]т.е. тип и подтип - это как бы папки, если по аналогии с визуальным деревом, а значениеХ - ветки?