powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / помогите с запросом/ХП
7 сообщений из 7, страница 1 из 1
помогите с запросом/ХП
    #32598882
T0nic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть БД с одной таблицей типа MOBILE(ID,NAME,PROFIT,PARENT_ID),
которая содержит иерархическю структуру.

Как для определенного ID вывести количество всех его потомков?
И как для него же посчитать сумму PROFIT всех дочерних узлов?
...
Рейтинг: 0 / 0
помогите с запросом/ХП
    #32598891
Black Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Учить HTML.
...
Рейтинг: 0 / 0
помогите с запросом/ХП
    #32598892
Black Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой не туда ответил. А тут нужно правильно базу спроектировать. Я лично для хранения древовидных структур nested sets использую. Тогда запросы как у тебя пишутся элементарно
...
Рейтинг: 0 / 0
помогите с запросом/ХП
    #32599208
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дак эта, написать рекурсивную процедуру...
Удачи.
...
Рейтинг: 0 / 0
помогите с запросом/ХП
    #32600509
T0nic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Black Fox
nested sets
а это что за зверь?

Лентяй
Например
...
Рейтинг: 0 / 0
помогите с запросом/ХП
    #32600873
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процедура возвращает переданный во входных параметрах узел и всех его потомков.
Под свои нужды уж сам как нибудь переделай.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create procedure info_childs (
    idparent integer)
returns (
    idnode integer)
as
declare variable id integer;
begin
  for select i.idnode from infotree i where i.idparent = :idparent into :id
  do
    for select idnode from info_childs(:id) into :idnode do
      suspend;
  idnode = idparent;
  suspend;
end
Удачи.
...
Рейтинг: 0 / 0
помогите с запросом/ХП
    #32602794
T0nic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока ждал ответа, свою процедуру замонстрил.
Надо будет сравнить.

SET TERM !! ;
CREATE PROCEDURE GetAllSubNodes (Root_Id Integer)
AS
Declare Variable NewRootId integer;
begin
for
select ID
from Mobile
where PARENT_ID = :Root_Id
Into :NewRootId
do
begin
insert into TempTree(id) values(:NewRootID);
execute procedure GetAllSubNodes (:NewRootId);
end
suspend;
end !!
SET TERM ; !!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / помогите с запросом/ХП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]