Мне нужна помощь, чтобы сделать рекурсивный запрос.
--select * from tmpProduto;
create table tmpProduto(
idpro number,
descpro varchar2(100),
unimetr varchar2(3),
qtty number(10,4))
alter table tmpProduto add constraint pk_TmpProduct primary key (idpro);
--select * from tmpComposition;
create table tmpComposition(
idmodel number,
idcomp number,
qtty number(10,4));
alter table tmpComposition add constraint pk_TmpCompositon primary key (idmodel, idcomp);
У меня есть две таблицы и сделать рекурсивный запрос
SELECT p.idpro, c.idmodel, c.idcomp, c.qtty, LEVEL lnum
FROM tmpComposition c
INNER JOIN tmpProduto p
ON (p.idpro = c.idmodel)
CONNECT BY PRIOR c.idcomp = c.idmodel
START WITH M.CODMOD = :vcdProduto;
Я хочу это сделать, вычислить поле qtty с помощью
product.qtty * component.qtty - здесь мне нужно применить рекурсив там, где уровень 1
component.qtty * component.qtty - здесь, где уровень больше 1
образец:
товар
idprod | descprod | qtty
0001 | 'Test Prod1' | 1
0002 | 'Test Prod2' | 1
компонент
idmodel | idcomp | qtty
0001 | 0002 | 0,5
0001 | 0003 | 0,43
0001 | 0075 | 1,15
0002 | 0005 | 0,24
0005 | 0006 | 0,25
0005 | 0007 | 0,78
результат мне нужен
idmodel | idcomp | p.qtty | c.qtty | value_I_want
0001 | 0002 | 1 | 0,5 | 0,5
0002 | 0005 | | 0,24 | 0,12
0005 | 0006 | | 0,25 | 0,03
0005 | 0007 | | 0,78 | 0,0936
0001 | 0003 | 1 | 0,43 | 0,43
0001 | 0075 | 1 | 1,15 | 1,15