Consulta anidada en funcion de Oracle

Caminante
21 de Noviembre del 2005
Estimados, tengo que hacer que una funcion me devuelva la cantidad de piezas que necesito, el tema suena simple, pero les comento
la tabla tiene el siguiente formato:

Origen Destino Cantidad
-----------------------------
Pieza1 Pieza2 10
Pieza2 Pieza5 20
Pieza5 Pieza7 5

Ya tengo las funciones que me devuelven si me piden por ejemplo la cantidad de pieza1 a pieza2 o viceversa, el tema
se complica y mucho cuando me piden por ejemplo de pieza1 a pieza5 ya que no tengo la relacion directa, con la logica humana
la sacas enseguida ya que Pieza1 necesita 10 piezas de la 2, y la 2 necesita 20 de la 5 asique sería que para la pieza 1
necesito 200 piezas de la 5.
Por directivas solo se triangula, sino las combinaciones serían infinitas, o sea si no existiese una relación directa de
pieza2 con pieza5 no se busca mas.
Mi gran problema es que lo tengo que hacer si o si con una funcion o algo que pueda meter en un sql de Oracle.
Estuve probando hacer loops de loops en una funcion y cuando la compilo queda con erroes y no le puedo dar en la tecla.

Desde ya muchas gracias a todos

Rodolfo Reyes
21 de Noviembre del 2005
Oracle tiene una prioridad muy interesante para hacer recorridos recursivos de una tabla, con esto podrias sacar de un solo tiron todos los componentes, y luego solo multiplicar los resultados

select origen, destino, cantidad
from tabla
START WITH origen = 'Pieza1'
CONNECT BY PRIOR origen = destino
/

Trata de ejecutar este query, para que observer el resultado.