Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/10/2010, 18:21
Stradivarius64
 
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Contar registros en relacion muchos a muchos

Hola Amigo, te cuento lo que podemos hacer...

Primero, hacemos un outer join de todas las tablas (las cuatro) y como no mencionas como se llama el campo donde esta el ID, entonces le vamos a poner como nombre de columna ID al campo que tiene el codigo y PARENT_ID al campo que tiene la relacion con la tabla maestro.

OK..

El FROM y WHERE deberian quedar asi...

FROM TABLA1 T1, TABLA2 T2, TABLA3 T3, TABLA4 T4
WHERE T1.ID = T2.PARENT_ID (+)
AND T2.ID = T3.PARENT_ID (+)
AND T3.ID = T4.PARENT_ID (+)

De esta manera, conseguiras cruzar todas las tablas.
Y si puedes ver, veras que para lograr sumar los 4 registros del codigo C1, solo debes hacer un count del campo T1.ID porque como dije, estan desplegadas todas las combinaciones.

Como se lograr el numero de combinaciones en un columna? Facil...
Agregas la siguiente funcion analitica en el select de la siguiente manera...

SELECT T1.ID, T2.ID, T3.ID, T4.ID,
COUNT(*) OVER(PARTITION BY T1.ID) CANTIDAD_POR_T1
FROM ....

Y listo !!!!!!

Espero que sea de ayuda.

Un saludo grande,
Stradivarius.