Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-02-2004
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.381
Poder: 17
fjcg02 Va camino a la fama
Consulta anidada

Hola a todos,
hemos comprado una aplicación que nos está tocando los innombrables..., con perdón.

Monta SQL Server.

Tiene una tabla de Elementos
ELEMENTO
DATOS VARIOS

Otra de relaciones entre Elementos
ELEMENTOPADRE
ELEMENTOHIJO

Las relaciones entre los elementos pueden ser de cualquier tipo, y un elemento puede estar 'compuesto' por otros elementos tanto simples como 'compuestos'.
Bueno, no se si se entiende bien, pero es el tipo caso de padres - hijos.

PADRE HIJO
E1 E2 -> El elemento E1 se compone del E2 y E3
E1 E3
E2 E4 -> A su vez el E2 se compone del E4 y E5
E2 E5
E5 E6 -> El E5 se compone del E6

Ahora viene la pregunta..... tachan
Se puede extraer en una sola query la composición a ultimo nivel de un elemento ?
Por ejemplo:
Query 1: El E1 se compone de E2,E3 y E4
Query 2: El E2 se compone de E4,E5 y E6

Ahí os dejo dándole vueltas. No os vayais a quemar el pelo de tanto pensar...

Por cierto, me gustaría no utilizar procedimientos almacenados. Ah se me olvidaba, en Oraclela sentencia CONNECT BY lo hace automático. Leí de este tema en un libro utilizando vacas y toros como ejemplo.

Adiosito, ya me contareis....
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 04-02-2004
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
NULL
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 17
javiermorales Va por buen camino
Una duda, si lo que quieres es el elemento al último nivel, no debería ser:

E1 compuesto de E3, E4 y E6

E2 compuesto de E4 y E6

Puesto como arbol sería:

E1------------> E2 --> E4
| |
----> E3 -----> E5 --> E6

Un saludo.
Responder Con Cita
  #3  
Antiguo 04-02-2004
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
NULL
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 17
javiermorales Va por buen camino
Perdón, se ha desplazado la segunda recta de la segunda línea del arbol, que debe estar debajo del E2.

Un saludo.
Responder Con Cita
  #4  
Antiguo 04-02-2004
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
NULL
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 17
javiermorales Va por buen camino
Y no debe aparecer la flecha entre E3 y E5
Responder Con Cita
  #5  
Antiguo 04-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.877
Poder: 22
delphi.com.ar Va por buen camino
Código:
SELECT *
FROM ELEMENTO E
WHERE NOT EXISTS (SELECT 1 
          FROM RELACIONES R
          WHERE R.ELEMENTOPADRE = E.ELEMENTO)
¿Esto?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 04-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.877
Poder: 22
delphi.com.ar Va por buen camino
Perdón... recién ahora me doy cuenta que quieres el último y toda su jerarquía... pues te recomiendo hacer una función, donde pases el resultado de el query que te pasé anteriormente.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 05-02-2004
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.381
Poder: 17
fjcg02 Va camino a la fama
Por aclarar, y una errata que he cometido....

PADRE HIJO
E1 E2 -> El elemento E1 se compone del E2 y E3
E1 E3
E2 E4 -> A su vez el E2 se compone del E4 y E5
E2 E5
E5 E6 -> El E5 se compone del E6

El E1 ¿ De que se compone hasta el ultimo nivel ?
Hijos de E1
E2
E3
E4
E5
E6

El E2 ¿ De que se compone hasta el ultimo nivel ?
Hijos de E2
E4
E5
E6

El E3 ¿ De que se compone hasta el ultimo nivel ?
Hijos de E3
Ninguno

El E5 ¿ De que se compone hasta el ultimo nivel ?
Hijos de E5
E6

Espero que haya quedado claro.

Gracias
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:53:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi