|
Как запросом получит самые нижние и самый верхний соотв. уровень в справочнике | ☑ | ||
|---|---|---|---|---|
|
0
mista2009
01.06.09
✎
06:50
|
Справочник Проекты, иерархия элементов.
Надо получить таблицу из двух колонок Самые верхние|Самые нижние Вот почти работающий вариант (нагородил портянку) ВЫБРАТЬ СамыеВерхние.Ссылка КАК Верхние, СамыеНижние.Ссылка КАК Нижние ИЗ (ВЫБРАТЬ Проекты.Ссылка КАК Ссылка ИЗ Справочник.Проекты КАК Проекты ГДЕ Проекты.Родитель = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка)) КАК СамыеВерхние ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ Проекты.Ссылка КАК Ссылка, Проекты.Родитель КАК Родитель ИЗ Справочник.Проекты КАК Проекты ГДЕ (НЕ Проекты.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ Проекты.Родитель ИЗ Справочник.Проекты КАК Проекты))) КАК СамыеНижние ПО (СамыеНижние.Родитель = СамыеВерхние.Ссылка ИЛИ СамыеНижние.Родитель.Родитель = СамыеВерхние.Ссылка ИЛИ СамыеНижние.Родитель.Родитель.Родитель = СамыеВерхние.Ссылка ИЛИ СамыеНижние.Родитель.Родитель.Родитель.Родитель = СамыеВерхние.Ссылка) |
|||
|
1
mista2009
01.06.09
✎
06:52
|
Самый верхний может быть и нижним - это как раз и не получается. А так вроде работает.
|
|||
|
2
Feanor
01.06.09
✎
06:56
|
Один момент тока портит все: глубина справочника может быть неограничена.
|
|||
|
3
Shurjk
01.06.09
✎
06:56
|
(2) Ага так что лушче обойтись без запросов.
|
|||
|
4
mista2009
01.06.09
✎
06:57
|
Да запрос кривой. Это я так для примера. Можно его вообще по другому построить.
|
|||
|
5
mista2009
01.06.09
✎
06:58
|
(3) Запросом очень желательно, т.к. нужен для связи с другими запросами.
|
|||
|
6
Feanor
01.06.09
✎
07:02
|
Интересно, йа задумалсо ))
З.Ы. ай=йа. английский не такой уж и далекий язык от русского))))))) |
|||
|
7
ZanderZ
01.06.09
✎
07:24
|
ВЫБРАТЬ //САМЫЕ ВВЕРХНИЕ
Проекты.Ссылка ИЗ Справочник.ПроектыКАК Проекты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПроектыКАК Проекты1 ПО Проекты.Родитель = Проекты1.Ссылка ГДЕ Проекты.Ссылка ЕСТЬ NULL ОБЪЕДИНИТЬ ВЫБРАТЬ //САМЫЕ НИЖНИЕ Проекты.Ссылка ИЗ Справочник.ПроектыКАК Проекты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Проекты КАК Проекты1 ПО Проекты.Ссылка = Проекты1.Родитель ГДЕ Проекты1.Ссылка ЕСТЬ NULL |
|||
|
8
ZanderZ
01.06.09
✎
07:24
|
в первом заменить
Проекты.Сылка ЕСТЬ NULL на Проекты1.Ссылка ЕСТЬ NULL |
|||
|
9
mista2009
01.06.09
✎
08:47
|
(7) Что-то не то. Надо две колонки.
|
|||
|
10
mista2009
01.06.09
✎
10:00
|
апну
|
|||
|
11
mista2009
01.06.09
✎
10:16
|
Вроде сделал, но очень уж громоздко. Плохо пока у меня с запросами
ВЫБРАТЬ Верхние.Ссылка КАК Верхние, Нижние.Ссылка КАК Нижние ИЗ (ВЫБРАТЬ Проекты.Ссылка КАК Ссылка ИЗ Справочник.Проекты КАК Проекты ГДЕ Проекты.Родитель = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка)) КАК Верхние ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ Проекты.Ссылка КАК Ссылка, Проекты.Родитель КАК Родитель ИЗ Справочник.Проекты КАК Проекты ГДЕ (НЕ Проекты.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ Проекты.Родитель ИЗ Справочник.Проекты КАК Проекты))) КАК Нижние ПО (Нижние.Родитель = Верхние.Ссылка ИЛИ Нижние.Родитель.Родитель = Верхние.Ссылка ИЛИ Нижние.Родитель.Родитель.Родитель = Верхние.Ссылка ИЛИ Нижние.Родитель.Родитель.Родитель.Родитель = Верхние.Ссылка) СГРУППИРОВАТЬ ПО Верхние.Ссылка, Нижние.Ссылка ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Проекты.Ссылка, Проекты.Ссылка ИЗ Справочник.Проекты КАК Проекты ГДЕ (НЕ Проекты.Ссылка В (ВЫБРАТЬ Проекты.Родитель ИЗ Справочник.Проекты КАК Проекты)) И Проекты.Родитель = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |