Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/12/2008, 16:12
Avatar de Thumper
Thumper
 
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Respuesta: Como hacer esta consulta a la bd

Esto podría servirte:

Código sql:
Ver original
  1. DECLARE @TABLE TABLE( idcat INT, nomcat VARCHAR(10), idcatpadre INT)
  2. INSERT INTO @TABLE VALUES( 1, 'ALFA', NULL )
  3. INSERT INTO @TABLE VALUES( 2, 'Cat 1', 1 )
  4. INSERT INTO @TABLE VALUES( 3, 'Cat 2', 1 )
  5. INSERT INTO @TABLE VALUES( 4, 'BETA', NULL )
  6. INSERT INTO @TABLE VALUES( 5, 'Cat 3', 4 )
  7. INSERT INTO @TABLE VALUES( 6, 'Cat 4', 4 )
  8. INSERT INTO @TABLE VALUES( 7, 'Cat 5', 1 )
  9. INSERT INTO @TABLE VALUES( 8, 'Cat 6', 9)
  10. INSERT INTO @TABLE VALUES( 9, 'GAMMA', NULL )
  11.  
  12. SELECT idcat, nomcat, idcatpadre, idcol
  13. FROM(
  14.     SELECT  idcat, nomcat, idcatpadre = idcat, idcol = 1
  15.     FROM    @TABLE
  16.     WHERE   idcatpadre IS NULL
  17.     UNION
  18.     SELECT  idcat, nomcat, idcatpadre, idcol = 2
  19.     FROM    @TABLE
  20.     WHERE   idcatpadre IS NOT NULL
  21. ) X
  22. ORDER BY idcatpadre, idcol

Saludos.
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD