|
Помогите написать запрос. | ☑ | ||
---|---|---|---|---|
0
ЗлаяЗая
21.10.21
✎
09:50
|
Помогите, пожалуйста, написать запрос.
В результате первого запроса получается выборка - список номенклатуры. У каждой номенклатуры есть родитель-группа номенклатуры. От 1 до 5 уровней. Есть РС "Группа номенклатуры- Цена услуги" Надо понять, к какому именно уровню родителя есть соответствие в РС и найти это значение. Значение точно одно. Т.е. нет такого, что есть значение для уровня1 и для уровня3 |
|||
1
Ёпрст
21.10.21
✎
09:52
|
(0) Надо как-то заставить себя открыть пофигуратор и сотворить левое соединение по группе номенклатуры
|
|||
2
Kassern
21.10.21
✎
09:56
|
я правильно понимаю:
1 таблица Номенклатура.Родитель.Родитель.Родитель="Супер папка" 2 таблица "Супер папка" 500рублев И вам надо Соединить 2 таблички и получить для всех товаров супер папки 500 рублев? |
|||
3
серый КТУЛХУ
21.10.21
✎
09:57
|
2 12 85 06
|
|||
4
ЗлаяЗая
21.10.21
✎
09:59
|
(1) Я это понимаю. Не могу понять, как по уровням писать.
(2) Да. Причем у каждой номенклатуры "Супер папка" может быть к разным уровням |
|||
5
ЗлаяЗая
21.10.21
✎
10:00
|
(3) шутку оценила :)
Я не знаю принципа связи |
|||
6
Kassern
21.10.21
✎
10:00
|
(4) А если у Номенклатура.Родитель будет у папки цена 400р, а у Номенклатура.Родитель.Родитель 500р, то какую брать?
|
|||
7
ЗлаяЗая
21.10.21
✎
10:02
|
(6) Не будет. Это условие.
|
|||
8
Pro-tone
21.10.21
✎
10:02
|
(0) дам только подсказку как уровни считать
ВЫБОР КОГДА Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)Тогда 0 ИНАЧЕ КОГДА Ссылка.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) Тогда 1 ... КОНЕЦ КАК Уровень |
|||
9
Kassern
21.10.21
✎
10:03
|
(8) это ж такая некрасивая портянка получается)
|
|||
10
Pro-tone
21.10.21
✎
10:04
|
(9) ну всего-то 5 концов)
|
|||
11
DrShad
21.10.21
✎
10:11
|
(8) не кошерно, ей нужно транзитивное замыкание курить
|
|||
12
Kassern
21.10.21
✎
10:17
|
Как то так:
Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | Таб1.ГруппаНоменклатуры КАК ГруппаНоменклатуры, | Таб1.Цена КАК Цена |ПОМЕСТИТЬ Таб1 |ИЗ | &Таб1 КАК Таб1 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Таб2.Номенклатура КАК Номенклатура |ПОМЕСТИТЬ Таб2 |ИЗ | &Таб2 КАК Таб2 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Таб2.Номенклатура КАК Номенклатура, | Таб1.ГруппаНоменклатуры КАК ГруппаНоменклатуры, | Таб1.Цена КАК Цена |ИЗ | Таб2 КАК Таб2 | ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1 | ПО (Таб2.Номенклатура В ИЕРАРХИИ | (ВЫБРАТЬ | Таб1.ГруппаНоменклатуры | ИЗ | Таб1))"; |
|||
13
Ёпрст
21.10.21
✎
10:24
|
(4) для 5 уровней тупо так, но будет не быстро
|
|||
14
Ёпрст
21.10.21
✎
10:30
|
Да в EСтьNull там поправишь как нннадо, смысл, надеюсь, понятен
|
|||
15
Kassern
21.10.21
✎
10:35
|
(13) а чем способ в (12) не устроил? Зачем перебирать эти уровни, когда есть волшебное "В иерархии"?
|
|||
16
H A D G E H O G s
21.10.21
✎
10:51
|
Такие вещи нужно делать кодом.
Для списка номенклатур получаем 1 запросом Родителей на 1 шаге, для списка родителей получаем список родителей на 2 шаге., и.т.д. Всего будет 5 запросов. В результате будет тз Номенклатура Родитель ИнверсныйУровень Суем в запрос, соединяем с регистром, сортируем по Минимуму ИнверсныйУровень (мы идем с низу дерева). |
|||
17
Kassern
21.10.21
✎
10:56
|
(16) Я все же не понимаю, почему все игнорят вот такую конструкцию?
| Таб2 КАК Таб2 | ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1 | ПО (Таб2.Номенклатура В ИЕРАРХИИ | (ВЫБРАТЬ | Таб1.ГруппаНоменклатуры | ИЗ | Таб1))"; В итоге мы получим для таб2(Таблица с номенклатурой) цены из таб1 если номенклатура в иерархии группы, а судя по (7) то и дублей у нас не будет |
|||
18
Homer
21.10.21
✎
10:57
|
(17) "В иерархии" данная конструкция красивая но вот быстродействие на большой выборки вызывает большие вопросы.
|
|||
19
Kassern
21.10.21
✎
10:59
|
(18) тут ни слова про количество записей, имхо для ТС прокатит
|
|||
20
Kassern
21.10.21
✎
11:01
|
(19) судя по тому, какие вопросы задает ТС, то вряд ли идет речь про высоконагруженные системы и овердофига записей)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |