|
Запрос иерархия | ☑ | ||
---|---|---|---|---|
0
Михей
21.03.12
✎
18:02
|
Хеллоу.
Никак не могу сообразить, есть запрос: ВЫБРАТЬ УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.Номенклатура, УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.ХарактеристикаНоменклатуры, УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.Цена КАК Цена, УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.Количество КАК Количество, УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.ВалютаЦены, УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.ЕдиницаИзмерения ИЗ РегистрСведений.УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.СрезПоследних( &Дата, ДоговорКонтрагента = &ДоговорКонтрагента И Номенклатура В ИЕРАРХИИ (&МассивНоменклатуры)) КАК УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре ГДЕ УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.Цена <> 0 В этом запросе поле Номенклатура может быть группой. Необходимо на выходе получить результат развернутый до элементов. Спасибо! |
|||
1
Axel2009
21.03.12
✎
18:02
|
а что не работает то?
|
|||
2
Михей
21.03.12
✎
18:07
|
ну как бы в таком виде он не подходит, думаю что и не получится это запросом, онле обработка результата
|
|||
3
palpetrovich
21.03.12
✎
18:11
|
(0) а какие могут быть у группы Цена, Количество? типа в группе 10 элементов, всего остаток 8 - кому ты это количество отдашь при развертывании? ...или я чего-то не понимаю или однно из двух :)
|
|||
4
palpetrovich
21.03.12
✎
18:15
|
+3 а, РегистрСведений, недочитал :)
|
|||
5
Михей
21.03.12
✎
18:16
|
(3) ну так сделано, например на группу "Туфли" идет цена 100 руб., значит каждый элемент этой группы стоит 100 руб., правда нужно учесть еще приоритеты, если есть вложенные группы
|
|||
6
Axel2009
21.03.12
✎
18:17
|
ну и? каков алгоритм?
|
|||
7
palpetrovich
21.03.12
✎
18:21
|
как вариант - проверяй в выборке, если группа - запрос к этой группе и выводи этот результата с кво и ценами из первого :)
|
|||
8
Кокос
21.03.12
✎
18:22
|
ИТОГИ ПО юзай.
|
|||
9
Михей
21.03.12
✎
18:23
|
Пример, справочник Номенклатуры:
Туфли - Мужские - 45 размер - 46 размер - Женские - 36 размер - 37 размер В регистре информация хранится в таком виде: Товар: Цена: Туфли 100 руб. Мужские 150 руб. 37 размер 70 руб. На выходе должны получить: Товар: Цена: 45 размер 150 руб. 46 размер 150 руб. 36 размер 100 руб. 37 размер 70 руб. как то так |
|||
10
Кокос
21.03.12
✎
18:24
|
а не. тут наверное надо ЛЕВОЕ СОЕДИНЕНИЕ юзать
|
|||
11
Михей
21.03.12
✎
18:25
|
(10) думал, но оно не работает В ИЕРАРХИИ
|
|||
12
le_
21.03.12
✎
18:25
|
По-моему, одним запросом не сделать.
Соединение по условию В ИРЕРАРХИИ работать не будет. |
|||
13
Кокос
21.03.12
✎
18:27
|
(12) зачем по условию в иерархии. просто делает ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ и тут новый запрос уже к иерархии а не к элементам) КАК Внтруеннийзапрос ПО ВрехнийЗАпрос.Родитель = Внтруеннийзапрос.Ссылка
|
|||
14
Михей
21.03.12
✎
18:28
|
(13) это если я знаю количество уровней иерархии
|
|||
15
le_
21.03.12
✎
18:28
|
(13) А если там вложенные группы есть?
|
|||
16
Кокос
21.03.12
✎
18:29
|
(15) все можно решить. я просто не понял до конца условий запроса.
|
|||
17
Кокос
21.03.12
✎
18:30
|
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ и тут новый запрос уже к иерархии а не к элементам) КАК Внтруеннийзапрос ПО ВрехнийЗАпрос.Родитель = Внтруеннийзапрос.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ и тут новый запрос уже к иерархии а не к элементам) КАК Внтруеннийзапрос ПО ВрехнийЗАпрос.Родитель.Родитель = Внтруеннийзапрос.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ и тут новый запрос уже к иерархии а не к элементам) КАК Внтруеннийзапрос ПО ВрехнийЗАпрос.Родитель.Родитель.Родитель = Внтруеннийзапрос.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ и тут новый запрос уже к иерархии а не к элементам) КАК Внтруеннийзапрос ПО ВрехнийЗАпрос.Родитель.Родитель.Родитель.Родитель = Внтруеннийзапрос.Ссылка накрайняк :)) только внутренний запрос куда нибудь вывести. вобщем хз. или одним соединением можно справиться. |
|||
18
Кокос
21.03.12
✎
18:31
|
Ого. Как хорошо у меня русский пошел :))
|
|||
19
Кокос
21.03.12
✎
18:37
|
чтото типа:
ВЫБРАТЬ .... КАК ВНУТРЕННИЙЗАПРОС ПОМЕСТИТЬ ВнутрЗапрос; ВЫБРАТЬ ВЫБОР КОГДА Внутр1.Цена > 0 ТОгда ВНУТР1.Цена ИНАЧЕ ВЫБОР КОГДА Внутр2.Цена > 0 ТОгда ВНУТР2.Цена ИНАЧЕ ВЫБОР КОГДА Внутр3.Цена > 0 ТОгда ВНУТР1.Цена ИНАЧЕ .... КОНЕЦ КОНЕЦ ... КОНЕЦ КАК ЦенаЭлемента, ..Другие поля ВЫБРАТЬ ИЗ ... ЛЕВОЕ СОЕДИНЕНИЕ ВНУТРЕННИЙЗАПРОС КАК Внутр1 ПО ВрехнийЗАпрос.Родитель = Внутр1.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ВНУТРЕННИЙЗАПРОС КАК Внутр2 ПО ВрехнийЗАпрос.Родитель.Родитель = Внутр2.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ВНУТРЕННИЙЗАПРОС КАК Внутр3 ПО ВрехнийЗАпрос.Родитель.Родитель.Родитель = Внутр3.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ВНУТРЕННИЙЗАПРОС КАК Внутр4 ПО ВрехнийЗАпрос.Родитель.Родитель.Родитель.Родитель = Внутр4.Ссылка ... и т.д. |
|||
20
Кокос
21.03.12
✎
18:38
|
ну и соответственно если надо обратные цены то начинаешь ВЫБОР делать с верхних уровней.
|
|||
21
Axel2009
21.03.12
✎
18:39
|
(0) можно выгрузить иерархию в ДЗ и пробежаться по строкам, проставить в соответствии с ДЗ.
|
|||
22
Кокос
21.03.12
✎
18:39
|
(21) запросы наше всё. :)
|
|||
23
Кокос
21.03.12
✎
18:40
|
(21) а если он хочет вывести в динамический список результат или в СКД выдать результат одним запросом?:)
|
|||
24
Михей
21.03.12
✎
18:42
|
(19) не кошерно
|
|||
25
Кокос
21.03.12
✎
18:44
|
(24) почему? я более мощные запросы писал. работает быстро даже при низкой скорости соединения.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |