169 похожих чатов

Парни, привет. Я все еще новичок в Оракле. У меня

есть один запрос который нужно написать и я уже пару дней пытаюсь придумать. Как бы это сделать. И что-то в голову ничего не лезет кроме процедуры которая бы это все делала, но не совсем понятно как она могла бы возвращать значение. Конечно можно попробовать вернуть курсор, но непонятно как собрать курсор из разных запросов. Короче. Есть значит иерархия из трех уровней. К конечной записи иерархии привязаны номенклатуры. Нужно посчитать количество номенклатуры по разной вложенности иерархии. То есть по первому уровню количество номенклатуры и иерархии, по второму, по третьему. И вот по каждому уровню должно быть подсчитано отдельно. Потом это все нужно вывести в интерфейс программы иерархическим списком. То есть сначала самый высокий уровень - количество, раскрывается плюсиком список нижних уровней, напротив каждого количество и так далее, все три уровня вложенности. Вопрос в том, как такое можно выводить и считать в одном запросе?

9 ответов

24 просмотра

Сразу писать его на постгре.

Михаил Власов
Сразу писать его на постгре.

Зачем? Оракл же теперь бесплатный)))

Гуглить "иерархическая сумма", вариантов полно, даже я пару вариантов писал

vern-17 Автор вопроса

В общем парни. Перечитав я тут много разного на эту тему. Не смог найти вариант который мне нужен. Данная задача явно выходит за пределы моего профессионального уровня. И делать я абы как ее почему-то не хочу. Поэтому попытаюсь объяснить максимально подробно. Есть база данных в которой существуют записи пономенклатурно, по датам с количеством остатков. То есть если взять select * from stock where date = '01.01.2022' он покажет 92к записей с количеством остатков по каждой номенклатуре. Рядом с ней есть таблица с иерархией, типа id и pid трех, четырех уровней вложенности. То есть у нее есть поля: foreign key с id номенклатуры, id и pid, если уровень самый верхний, то pid = 0. То есть в итоге мы имеем структуру ТОВАРЫ ДЛЯ НОВОГО ГОДА->ЕЛКИ->ЗЕЛЕНЫЕ ЕЛКИ СО ЗВЕЗДОЧКОЙ и в другой таблице количество остатков на нужную дату.В целом составить структуру иерархии по лвл с помощью коннект бай не вызвало труда, но не совсем понятно как сделать подзапрос чтобы он считал количество товара для каждой строчки. К примеру Това

vern-17 Автор вопроса
vern 17
screenshot В общем парни. Перечитав я тут много разного на эт...

Почему то оборвалось сообщение. Так вот. К примеру как показано на рисунке.

vern 17
screenshot В общем парни. Перечитав я тут много разного на эт...

Я же говорил: гуглить "иерархическая сумма"

vern 17
бамп

Я вообще не понял что нужно

vern-17 Автор вопроса
Уруруборос Иванович
Я вообще не понял что нужно

В одной таблице есть названия номенклатуры с количеством, разделенными разными единицами измерения. Во второй, есть иерархия. Нужно привязать количество единиц к иерархии, вывести по каждому пункту иерархии количество имеющихся единиц которые содержат номенклатуры привязанные к этой группе. Причем нужно вывести сначала все единицы по данной группе в разных строках с разными данными, потом данные о нижнем уровне и так далее до самого последнего содержащего непосредственно номенклатуры. И вывести это все вот в том виде как на скрине.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
@FAssembler ты много с формами работал, как цикл обработки сообщений от окошек надо делать, чтобы IsDialogMessage не ломал ввод в эдиты и навигация по табам работала?
The Bird of Hermes
8
Карта сайта