|
Помогите, пожалуйста, с запросом! | ☑ | ||
---|---|---|---|---|
0
Grusswelle
12.08.11
✎
15:53
|
Есть иерархическая структура: справочник, план счетов - всё, что угодно, где есть реквизит "Родитель". Задача - вывести дополнительное поле, которое обозначало бы, используется ли данный элемент в качестве родителя какого-либо другого (является группой) или нет. Поля "ЭтоГруппа" нет.
Либо носом ткните меня куда-нибудь позырить... Заранее спасибо. |
|||
1
mzelensky
12.08.11
✎
15:58
|
(0) что значит "ЭтоГруппа" НЕТ ??? а куда оно делось???
|
|||
2
Grusswelle
12.08.11
✎
15:59
|
(1) Не важно. Нету - и всё. :-)
|
|||
3
luckyluke
12.08.11
✎
16:03
|
(0) что-то акромя как собрать всех родителей в ВТ и проверить на вхождение в этот список ничего не приходит...
|
|||
4
Luhtas
12.08.11
✎
16:05
|
(0) ЭтоГруппа - Это же вроде признак булево, не могу сообразить почему его нет в иерархическом справочнике. А поточнее можно?
|
|||
5
cViper
12.08.11
✎
16:06
|
добавь ЭтоГруппа. В будущем пригодится.
|
|||
6
luckyluke
12.08.11
✎
16:06
|
Что-то вроде:
ВЫБРАТЬ РАЗЛИЧНЫЕ Хозрасчетный.Родитель КАК Родитель ПОМЕСТИТЬ ВТ_СписокРодителей ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный ИНДЕКСИРОВАТЬ ПО Родитель ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Хозрасчетный.Ссылка, ВЫБОР КОГДА ВТ_СписокРодителей.Родитель ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК ЭтоГруппа ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СписокРодителей КАК ВТ_СписокРодителей ПО Хозрасчетный.Ссылка = ВТ_СписокРодителей.Родитель |
|||
7
Grusswelle
12.08.11
✎
16:07
|
(4) Нету реквизита "ЭтоГруппа". Нету - и всё.
(5) Нельзя. |
|||
8
Grusswelle
12.08.11
✎
16:07
|
(3) Вот с этим-то и мучаюсь. То есть, нужен вложенный вопрос, который возвращал бы два поля:
1. Ссылка (для объединения) 2. Количество использования элемента в качестве родителя (0 - элемент, не 0 - группа). ...только вот на счёт 2-го пункта я сейчас торможу что-то... :-/ |
|||
9
Grusswelle
12.08.11
✎
16:08
|
(6) Типа того. Только речь идёт о динамическом списке. Он разве поддерживает временные таблицы?:!
|
|||
10
AquaKosh
12.08.11
✎
16:09
|
(9) Нужно вывести дерево, имея в наличии только таблицу с ID и parentID?
|
|||
11
luckyluke
12.08.11
✎
16:10
|
(9) ну замени ВТ на вложенный запрос:
ВЫБРАТЬ Хозрасчетный.Ссылка, ВЫБОР КОГДА ВТ_СписокРодителей.Родитель ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК ЭтоГруппа ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ Хозрасчетный.Родитель КАК Родитель ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный) КАК ВТ_СписокРодителей ПО Хозрасчетный.Ссылка = ВТ_СписокРодителей.Родитель |
|||
12
Grusswelle
12.08.11
✎
16:10
|
(10) Не дерево. Нужно вывести дополнительное поле (например IsParent), которое означало бы, используется ли этот элемент в качестве Parent хоть у одного или нет.
|
|||
13
luckyluke
12.08.11
✎
16:13
|
(11) Можно и без вложенного:
ВЫБРАТЬ Различные Хозрасчетный.Ссылка, ВЫБОР КОГДА ВТ_СписокРодителей.Родитель ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК ЭтоГруппа ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК ВТ_СписокРодителей ПО Хозрасчетный.Ссылка = ВТ_СписокРодителей.Родитель И (ВТ_СписокРодителей.Родитель <> ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)) |
|||
14
Inform
12.08.11
✎
16:20
|
Накидал быстренько, не проверял, но принцип такой должен сработать:
ВЫБРАТЬ Хозрасчетный.Родитель КАК Счет, ИСТИНА КАК ЭлементИерархический ПОМЕСТИТЬ ВТ_ПланСчетовСРодителями ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный ГДЕ (НЕ Хозрасчетный.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка)) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Хозрасчетный.Ссылка, ЛОЖЬ ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный ЛЕВОЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный КАК Хозрасчетный1 ПО Хозрасчетный.Ссылка = Хозрасчетный1.Родитель ГДЕ Хозрасчетный1.Ссылка ЕСТЬ NULL |
|||
15
Inform
12.08.11
✎
16:21
|
ПОМЕСТИТЬ ВТ_ПланСчетовСРодителями
лишнее для дин. списка |
|||
16
Grusswelle
12.08.11
✎
16:24
|
ща попробую...
|
|||
17
Grusswelle
12.08.11
✎
16:35
|
Поковырялся в носу, включил мозг. :-))
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЕПСБУ.Родитель КАК Ссылка, МАКСИМУМ(1) КАК Группа ИЗ ПланСчетов.ЕПСБУ КАК ЕПСБУ ГДЕ ЕПСБУ.Родитель <> ЗНАЧЕНИЕ(ПланСчетов.ЕПСБУ.ПустаяСсылка) СГРУППИРОВАТЬ ПО ЕПСБУ.Родитель) КАК ВложенныйЗапрос |
|||
18
Grusswelle
12.08.11
✎
16:35
|
Всем спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |