Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   consulta sql (https://www.clubdelphi.com/foros/showthread.php?t=29609)

Caro 26-01-2006 21:06:46

consulta sql
 
Holas,

Primero que nada disculpas por el titulo pero no sabia que titulo ponerle.

Mi problema es el siguiente tengo una tabla llamada categoria con los siguientes campos codigo, descripcion y categoria que es una referencia a si misma

Dando un pequeño ejemplo podria tener estos datos
Código:

codigo descripcion        nivel  categoria
ADM0  ADMINISTRADOR    0      ADM0
CTB0  CONTADOR          0      CTB0
CAJ    CAJEROS              0      CAJ
CAJ01  CAJERO 1            1      CAJ
CAJ02  CAJERO 2            1      CAJ

quiero mostrar esta siguiente lista donde no entraria este registro CAJ CAJEROS CAj ya que tiene sus hijos, pero si se mostrarian sus hijos y los otros registros que no tienen sus hijos tambien

Código:

codigo descripcion        nivel  categoria
ADM0  ADMINISTRADOR    0      ADM0
CTB0  CONTADOR          0      CTB0
CAJ01  CAJERO 1            1      CAJ
CAJ02  CAJERO 2            1      CAJ

Delphi7 y BD: Access

Ayudemme por favor no tengo idea de como hacerlo, muchas gracias de antemano espero se entienda.

Saludos

vtdeleon 26-01-2006 21:14:48

Saludos

Yo no entiendo tu estructura, Por qué codigo y categoria tienen los mismo valores?

Caro 26-01-2006 21:30:58

gracias por responder, es una tabla que hace referencia a si misma, no tienen todos el mismo valor solo los que son a nivel 0 los de niveles mayores necesitan un padre por ejemplo en mi ejemplo cajero1 y cajero2 pertenecen a la categoria cajeros, me falto poner el campo de nivel pero ahora lo arreglo en mi ejemplo de arriba

Saludos

fabianbbg 26-01-2006 22:29:28

Hola caro:

Esto seria el sql, reemplaza tabla1 por el nombre de tu tabla..

Código SQL [-]

SELECT * 
FROM tabla1 
WHERE (codigo<>categoria) 
          or  (codigo in (SELECT categoria 
                              FROM tabla1 
                              GROUP BY categoria 
                              HAVING count(categoria)=1))


Espero te sirva.. Saludos..

Caro 27-01-2006 13:24:24

Mil gracias fabianbbg, me sirvio de mucho saca el listado que yo queria de nuevo gracias.


La franja horaria es GMT +2. Ahora son las 03:35:24.

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