Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Вниз

Проблема с join в connect by запросе. 


EternalWonderer   (2001-12-25 10:01) [0]

Да ... ларчик просто открывался .... А вот продолжение этой задачки:
Дано: Таблицы CATALOG(ID,PARENT,CAPTION), LIST(ID_CAT,OTHER_FIELDS)
Задача: Присоединить данные второго запроса так, чтобы не нарушился порядок сортировки строк в первом запросе:
1) select ID,(LEVEL-1) L_PARENT,CAPTION
from CATALOG start with PARENT=0 connect by PRIOR ID=PARENT;
2) SELECT ID_CAT,count(*) FROM LIST group by ID_CAT;

Примечание. При выполнении отдельно первого запроса за каждым родителем выводятся его потомки. При попытке присоединить вторую таблицу вот так:

create view CAT as select ID,(LEVEL-1) L_PARENT,CAPTION
from CATALOG start with PARENT=0 connect by PRIOR ID=PARENT;

select ID,L_PARENT,CAPTION,COUNTS
from CAT,(select ID_CAT,count(*) COUNTS from LIST group by ID_CAT) where ID=TYPE_SI(+);

всё выводится замечательно, но сначала выдаются все родители первого уровня, затем второго и т.д.

Заранее большое спасибо!



Mick   (2001-12-25 10:15) [1]

Oracle по умолчанию агрегаты сортирует глядя в поля из GropBy. Боюсь что для сохранения первоначального порядка дерева нужен связанный подзапрос



EternalWonderer   (2001-12-25 10:42) [2]

А нельзя ли привести маленький пример связанного подзапроса, или хотя бы в каком разделе справки об этом почитать? В разделе Hierarchical Queries справки Oracle о связанных подзапросах на слова ...



Mick   (2001-12-25 11:16) [3]

В древовидном запросе в список полей добавь выражение, вычисляющее количество
Select id, (Select count(det_id) from DetailTable where ParentId = Id) as Counts
From MasterTable



EternalWonderer   (2001-12-25 11:44) [4]

Спасибо за помощь и удачи!




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.71 MB
Время: 0.014 c
1-90299           Даггер                2002-01-08 11:49  2002.01.28  
Хочется извратиться, а знаний не хватает...


1-90251           Alex Marmuzevich      2002-01-08 23:12  2002.01.28  
DLL и EXE в одном флаконе.


6-90329           Alexandr              2001-11-05 12:14  2002.01.28  
Print Server и печать из-под DOS


3-90218           Алексей1              2001-12-21 19:17  2002.01.28  
DBLookupComboBox


4-90427           WithoutHead           2001-11-27 19:09  2002.01.28  
Help!