Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/12/2010, 05:17
Avatar de PosProdukcion
PosProdukcion
 
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Query jerárquica en SQL Server

Hola, tengo una tabla que se referencia a si misma formando una estructura jerarquica:

Enlace_Menu
----------------
IdEnlace
IdMenu
TextoEnlace
IdEnlacePadre
Orden

Quiero hacer una query que me seleccione todos los enlaces de un menú, jerarquizados:

- Padre 1
- -- Hijo 1
- -- Hijo 2
- -- Hijo 3
- Padre 2
- -- Hijo 1
- -- Hijo 2
..............

He visto esta query:

Código SQL:
Ver original
  1. WITH n(empid, name) AS
  2.    (SELECT empid, name
  3.     FROM emp
  4.     WHERE name = 'Joan'
  5.         UNION ALL
  6.     SELECT nplus1.empid, nplus1.name
  7.     FROM emp AS nplus1, n
  8.     WHERE n.empid = nplus1.mgrid)
  9. SELECT name FROM n


Mi problema es que no salen ordenados siguiendo la jerarquía, ¿como puedo hacerlo?

¿Sabéis solucionarlo? Otra opción que he visto es con un procedimiento recursivo, aunque si es posible resolverlo con una query lo prefiero


Gracias

Última edición por PosProdukcion; 07/12/2010 a las 05:55