|
Подскажите как запросом получить требуемую иерархию элементов | ☑ | ||
---|---|---|---|---|
0
rikodroo
24.07.13
✎
15:33
|
Есть иерархический справочник (только элементы) ГруппаПрайсЛиста:
Автозапчасти ВАЗ,ОКА Китайские подделки Официально от производителя Автозапчасти ГАЗ,УАЗ, ГАЗ 53, ПАЗ Автокрепеж ВАЗ, ГАЗ, УАЗ Болты Что попало Канадские гайки Болты из Гватемалы Кузовное железо ВАЗ, ГАЗ, УАЗ У каждого товара есть соотв.реквизит, так, что имеем вот такую таблицу: ["ГруппаПрайсЛиста" ; "Товар"] [Автозапчасти ВАЗ,ОКА ; Амортизатор задней подвески 2101 "FENOX" (газ) (A22365)] [Автозапчасти ГАЗ,УАЗ, ГАЗ 53, ПАЗ ; Бачок омывателя УАЗ 3160 "Патриот" (голый)] [Китайские подделки ; Бачок расширительный 1118] [Официально от производителя ; Балка передняя 2110 "АВТОВАЗ"] [Автозапчасти ВАЗ,ОКА ; Адсорбер 1118/2190] [Канадские гайки ; Винт двери 2108 М8*35] [Канадские гайки ; Винт зеркала 2108 М4*16] [Болты из Гватемалы ; Болт подвесного подшипника 2101 М8*18] [Болты ; Болт двери 2108 М10*42 (палец)] [Болты ; Болт двери бесшумный 2108 (4шт)] [Автокрепеж ВАЗ, ГАЗ, УАЗ ; Болт бампера 2105 М14*70] [Автокрепеж ВАЗ, ГАЗ, УАЗ ; Болт генератора 2101/08 М12*120] [Кузовное железо ВАЗ, ГАЗ, УАЗ ; Стойка УАЗ-469 (задней двери) лев. "УАЗ"] [Кузовное железо ВАЗ, ГАЗ, УАЗ ; Стойка УАЗ-469 (задней двери) прав. "УАЗ"] [Кузовное железо ВАЗ, ГАЗ, УАЗ ; Порог УАЗ "Патриот" (левый) "УАЗ"] [Кузовное железо ВАЗ, ГАЗ, УАЗ ; Порог УАЗ "Патриот" (правый) "УАЗ"] [Автозапчасти ГАЗ,УАЗ, ГАЗ 53, ПАЗ ; Амортизатор передней подвески ГАЗ Соболь 2217 "Плаза" (2180)] Запрос вида: ВЫБРАТЬ Номенклатура.ГруппаПрайсЛиста КАК ГруппаПрайсЛиста, Номенклатура.Ссылка КАК Товар ИЗ Справочник.Номенклатура КАК Номенклатура ИТОГИ ПО ГруппаПрайсЛиста ИЕРАРХИЯ выдает данные таким образом: Автозапчасти ГАЗ,УАЗ, ГАЗ 53, ПАЗ <NULL> Автозапчасти ГАЗ,УАЗ, ГАЗ 53, ПАЗ Бачок омывателя УАЗ 3160 "Патриот" (голый) Автозапчасти ГАЗ,УАЗ, ГАЗ 53, ПАЗ Амортизатор передней подвески ГАЗ Соболь 2217 "Плаза" (2180) Кузовное железо ВАЗ, ГАЗ, УАЗ <NULL> Кузовное железо ВАЗ, ГАЗ, УАЗ Стойка УАЗ-469 (задней двери) лев. "УАЗ" Кузовное железо ВАЗ, ГАЗ, УАЗ Стойка УАЗ-469 (задней двери) прав. "УАЗ" Кузовное железо ВАЗ, ГАЗ, УАЗ Порог УАЗ "Патриот" (левый) "УАЗ" Кузовное железо ВАЗ, ГАЗ, УАЗ Порог УАЗ "Патриот" (правый) "УАЗ" Автозапчасти ВАЗ,ОКА <NULL> Автозапчасти ВАЗ,ОКА <NULL> Автозапчасти ВАЗ,ОКА Амортизатор задней подвески 2101 "FENOX" (газ) (A22365) Автозапчасти ВАЗ,ОКА Адсорбер 1118/2190 Китайские подделки <NULL> Китайские подделки Бачок расширительный 1118 Официально от производителя <NULL> Официально от производителя Балка передняя 2110 "АВТОВАЗ" Автокрепеж ВАЗ, ГАЗ, УАЗ <NULL> Болты <NULL> Болты Болт двери 2108 М10*42 (палец) Болты Болт двери бесшумный 2108 (4шт) Автокрепеж ВАЗ, ГАЗ, УАЗ <NULL> Автокрепеж ВАЗ, ГАЗ, УАЗ Болт бампера 2105 М14*70 Автокрепеж ВАЗ, ГАЗ, УАЗ Болт генератора 2101/08 М12*120 Что попало <NULL> Канадские гайки <NULL> Канадские гайки Винт двери 2108 М8*35 Канадские гайки Винт зеркала 2108 М4*16 Болты из Гватемалы <NULL> Болты из Гватемалы Болт подвесного подшипника 2101 М8*18 Мне не нравится, что например в "подвыборке" Автозапчасти ВАЗ,ОКА <NULL> - имеется таже группа прайс листа (Автозапчасти ВАЗ,ОКА <NULL>), в которое представлены элементы, для которых эта группа корневая. Как сделать, что бы (на примере это группы) было вместо: Автозапчасти ВАЗ,ОКА <NULL> Автозапчасти ВАЗ,ОКА <NULL> Автозапчасти ВАЗ,ОКА Амортизатор задней подвески 2101 "FENOX" (газ) (A22365) Автозапчасти ВАЗ,ОКА Адсорбер 1118/2190 Китайские подделки <NULL> Китайские подделки Бачок расширительный 1118 Официально от производителя <NULL> Официально от производителя Балка передняя 2110 "АВТОВАЗ" вот так: Автозапчасти ВАЗ,ОКА <NULL> Китайские подделки <NULL> Китайские подделки Бачок расширительный 1118 Официально от производителя <NULL> Официально от производителя Балка передняя 2110 "АВТОВАЗ" * Автозапчасти ВАЗ,ОКА Амортизатор задней подвески 2101 "FENOX" (газ) (A22365) * Автозапчасти ВАЗ,ОКА Адсорбер 1118/2190 Я понимаю, что при обходе результата запрос, можно эту ситуацию разрулить, но может как-то и в запросе можно? |
|||
1
zhig75
24.07.13
✎
15:35
|
Мдя ну и каша!
|
|||
2
rikodroo
24.07.13
✎
15:36
|
да, чего то форматирование неочень. Если скопировать и вставить в блокнот, то нормально
|
|||
3
olegves
24.07.13
✎
15:38
|
(0) выгрузить в дерево значений, но откуда у тебя в справочнике значения Null?
|
|||
4
zhig75
24.07.13
✎
15:38
|
Ты напиши какой алгоритм хочеш получить, а то тут китайские поделки, ваз, ока, там, маз, хрен разбереш.
|
|||
5
rikodroo
24.07.13
✎
15:40
|
(3) в справочнике нет null. Это, когда итог делаеш появляется. Это нормально.
|
|||
6
rikodroo
24.07.13
✎
15:46
|
Ок, попробую.
Есть таблица вида (Товар, ГруппаПрайсЛиста) ГруппаПрайсЛиста - это иерархические справочник, в иерархии которого я хочу получить таблицу товаров. Притом в таком виде - сначала идет группа (или подгруппа), а потом элементы, для которых эта группа корневая: ГруппаПрайсЛиста1 ПодгруппаА ТоварХ ПодгруппаБ ТоварУ ТоварZ ТоварO ГруппаПрайсЛиста2 ТоварQ ГруппаПрайсЛиста2 ПодгруппаА ПодгруппаА ТоварR ТоварU |
|||
7
rikodroo
24.07.13
✎
15:46
|
ЧТобы при формировании прайса не заморачиваться с обходом результата запроса в общем
|
|||
8
olegves
24.07.13
✎
15:47
|
(5) если итоги, то делай обход по иерархии
|
|||
9
zhig75
24.07.13
✎
15:49
|
ИТОГИ
СРЕДНЕЕ(Цена), СУММА(КоличествоОборот), СУММА(КоличествоПриход), СУММА(КоличествоРасход) ПО ОБЩИЕ, Номенклатура ИЕРАРХИЯ |
|||
10
rikodroo
24.07.13
✎
15:50
|
(8) с иерархией получается типа:
ГруппаПрайсЛиста1 ПодгруппаА ТоварХ ПодгруппаБ ТоварУ ГруппаПрайсЛиста1 ТоварZ ТоварO ГруппаПрайсЛиста2 ТоварQ ГруппаПрайсЛиста2 ПодгруппаВ ПодгруппаГ ТоварR ГруппаПрайсЛиста2 ТоварU |
|||
11
zhig75
24.07.13
✎
15:50
|
(9) это пример куска запроса который по часа назад делал. Делай итоги по элементы и иерархия.
|
|||
12
rikodroo
24.07.13
✎
15:52
|
(11) это не решает проблему из (6)
|
|||
13
zhig75
24.07.13
✎
15:52
|
Подгруппа Б у тебя родитель Подгрупп А?
|
|||
14
rikodroo
24.07.13
✎
15:53
|
нет
|
|||
15
zhig75
24.07.13
✎
15:53
|
Запрос вываливай!
|
|||
16
rikodroo
24.07.13
✎
15:54
|
ВЫБРАТЬ
Номенклатура.ГруппаПрайсЛиста КАК ГруппаПрайсЛиста, Номенклатура.Ссылка КАК Товар ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ НЕ Номенклатура.ГруппаПрайсЛиста = ЗНАЧЕНИЕ(Справочник.плГруппыДляПрайсЛиста.ПустаяСсылка) ИТОГИ ПО ГруппаПрайсЛиста ИЕРАРХИЯ |
|||
17
rikodroo
24.07.13
✎
15:54
|
у групп иерархия такая:
ГруппаПрайсЛиста1 ПодгруппаА ПодгруппаБ ГруппаПрайсЛиста1 ГруппаПрайсЛиста2 ГруппаПрайсЛиста2 ПодгруппаВ ПодгруппаГ ГруппаПрайсЛиста2 |
|||
18
rikodroo
24.07.13
✎
15:55
|
блин, опять я маленько неверно написал
(17) - такая получается, а мне надо: ГруппаПрайсЛиста1 ПодгруппаА ПодгруппаБ ГруппаПрайсЛиста2 ПодгруппаВ ПодгруппаГ |
|||
19
rikodroo
24.07.13
✎
15:56
|
(15) проще тебе в общем аналогичный (16) запрос выполнить и увидиш
|
|||
20
zhig75
24.07.13
✎
16:00
|
Подгруппа А у тебя Родитель Подгруппы Б.
Вот тебе простой запрос и пища для размышлений. ВЫБРАТЬ Номенклатура.Наименование, Номенклатура.Родитель КАК Родитель ИЗ Справочник.Номенклатура КАК Номенклатура ИТОГИ ПО Родитель ИЕРАРХИЯ |
|||
21
rikodroo
24.07.13
✎
16:02
|
(20) ты в иерархическом справочнике делаеш итоги по родителю, а теперь сделай как у меня таблицу и посмотри, что запрос выдаст
|
|||
22
rikodroo
24.07.13
✎
16:06
|
+(20) Подгруппа А Родитель Подгруппы Б - да, именно так. Но вот как сделать, чтобы ГруппаПрайсЛиста1 не была подгруппой себяже?
|
|||
23
zhig75
24.07.13
✎
16:06
|
(21) я нихрена не понимаю.
|
|||
24
rikodroo
24.07.13
✎
16:13
|
(23) если так делать то будет:
1)ПодгруппаА,ПодгруппаБ,ГруппаПрайсЛиста1 - на одном уровне в группе ГруппаПрайсЛиста1 2)ПодгруппаВ, ГруппаПрайсЛиста3 - на одном уровне в ГруппаПрайсЛиста3 ГруппаПрайсЛиста1 ПодгруппаА ТоварХ ПодгруппаБ ТоварУ ГруппаПрайсЛиста1 ТоварZ ТоварO ГруппаПрайсЛиста2 ТоварQ ГруппаПрайсЛиста3 ПодгруппаВ ПодгруппаГ ТоварR ГруппаПрайсЛиста3 ТоварU Так вот надо, чтобы было так: ГруппаПрайсЛиста1 ПодгруппаА ТоварХ ПодгруппаБ ТоварУ ТоварZ ТоварO ГруппаПрайсЛиста2 ТоварQ ГруппаПрайсЛиста3 ПодгруппаВ ПодгруппаГ ТоварR ТоварU |
|||
25
rikodroo
24.07.13
✎
16:13
|
Сейчас нормально, без ошибок написал и отформатировалось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |