Fórum Dúvida na construção de Query. DIFÍCIL!!! #37958
13/08/2003
0
Tenho duas tabelas como descrevo abaixo:
tab1 => iCodPai, iCodComponemte
tab2 => iCod, iTipo
Para 1 iPai existe vários iComponentes com iTipo que pode ser P ou C. Para saber todos os iComponentes de um iPai, fiz a seguinte query:
select E.iCodPai, E.iCodComponente, I.iTipo
from tab1 E, tab2 I
where E.iCodPai = ´4902000150A´ AND
E.iCodComponente = I.iCod
Result. : 4902000150A AAAAAA C
4902000150A BBBBBBB C
4902000150A CCCCCC P
4902000150A DDDDDD C
4902000150A EEEEEEE C
4902000150A FFFFFFF P
4902000150A GGGGG C
4902000150A HHHHHH P
Qdo o tipo for P, implica dizer que existe uma estrutura por baixo desse componente. É como se fizesse a query acima com o iCodPai = (produto que for P). Isso pode ocorrer em até seis níveis.
Como eu faria essa query para desdobrar os produtos até que eles cheguem todos a C?
Obrigado.
tab1 => iCodPai, iCodComponemte
tab2 => iCod, iTipo
Para 1 iPai existe vários iComponentes com iTipo que pode ser P ou C. Para saber todos os iComponentes de um iPai, fiz a seguinte query:
select E.iCodPai, E.iCodComponente, I.iTipo
from tab1 E, tab2 I
where E.iCodPai = ´4902000150A´ AND
E.iCodComponente = I.iCod
Result. : 4902000150A AAAAAA C
4902000150A BBBBBBB C
4902000150A CCCCCC P
4902000150A DDDDDD C
4902000150A EEEEEEE C
4902000150A FFFFFFF P
4902000150A GGGGG C
4902000150A HHHHHH P
Qdo o tipo for P, implica dizer que existe uma estrutura por baixo desse componente. É como se fizesse a query acima com o iCodPai = (produto que for P). Isso pode ocorrer em até seis níveis.
Como eu faria essa query para desdobrar os produtos até que eles cheguem todos a C?
Obrigado.
Julianomc
Curtir tópico
+ 0
Responder
Posts
13/08/2003
Afarias
Desculpe, não entendi o q vc pretende fazer. Poderia explicar melhor?!
T+
T+
Responder
Gostei + 0
13/08/2003
Julianomc
Ok.
Fiz essa query para saber todos os iComponentes de um iPai:
select E.iCodPai, E.iCodComponente, I.iTipo
from tab1 E, tab2 I
where E.iCodPai = ´AAAA´ AND
E.iCodComponente = I.iCod
O resultado desta query me trouxe uma listagem de iComponentes. Apartir daí tenho que verificar os iTipo que são ‘P’ , porque os que são P, me diz que existe uma outra estrutura abaixo, daí o iComponente passa a ser Pai e me traz mais uma listagem de iComponentes.
Tenho que ir verificando até que a estrutura fique C. Existe no máximo 06 níveis.
Por Exemplo, minha query me trouxe como o resultado o seguinte:
Pai Compon. Tipo
AAAA 0125AO C
AAAA 0256AO P
A partir daí, tenho que verificar o que existe abaixo do segundo registro. Pego a query acima e agora na condição, o iCodPai vai ser o 0256AO. Se neste resultado ele me mostrar algum iTipo igual a P, faço a mesma rotina, até que o resultado me mostre tudo C. E o máximo de níveis que posso descer são 6.
Fiz essa query para saber todos os iComponentes de um iPai:
select E.iCodPai, E.iCodComponente, I.iTipo
from tab1 E, tab2 I
where E.iCodPai = ´AAAA´ AND
E.iCodComponente = I.iCod
O resultado desta query me trouxe uma listagem de iComponentes. Apartir daí tenho que verificar os iTipo que são ‘P’ , porque os que são P, me diz que existe uma outra estrutura abaixo, daí o iComponente passa a ser Pai e me traz mais uma listagem de iComponentes.
Tenho que ir verificando até que a estrutura fique C. Existe no máximo 06 níveis.
Por Exemplo, minha query me trouxe como o resultado o seguinte:
Pai Compon. Tipo
AAAA 0125AO C
AAAA 0256AO P
A partir daí, tenho que verificar o que existe abaixo do segundo registro. Pego a query acima e agora na condição, o iCodPai vai ser o 0256AO. Se neste resultado ele me mostrar algum iTipo igual a P, faço a mesma rotina, até que o resultado me mostre tudo C. E o máximo de níveis que posso descer são 6.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)