[ Foro de SQL (y MySQL) ]

Ayuda con una consulta SQL

28-Jun-2019 19:15
Aldo Hernandez
0 Respuestas

Hola a todos, necesito lograr crear una consulta, pero nunca había intentado hacer algo así y no se si es posible.

Tengo 2 tablas, la primera contiene el nombre de los contenedores principales y la segunda tiene el registro de las carpetas y documentos dentro del contenedor principal.

La primera tabla (contenedores) tiene estos campos
1. Código
2. Nombre

La segunda (registros) tiene estos campos
1. Codigo
2. Nombre
3. RegistroPadre
4. Contenedor

El campo 1 es el que tiene el código único de cada registro (puede ser un documento o una carpeta).  El campo 2  tiene el nombre o descripción del registro, el campo 3 contiene el código del registro padre (o carpeta) donde está almacenado un documento y el campo 4 contiene el código de contendor donde está una carpeta principal.

Un ejemplo de los datos

Tabla 1
 Codigo          Nombre
   850            Contenedor 1
   860            Contenedor 2
   870            Contenedor 3

Tabla 2
  Codigo             Nombre              RegistroPadre    Contenedor  
    100               Carpeta 1                    0                     850
    101               Carpeta 2                    0                     850            
    102               Carpeta 3                    0                     850
    103               Documento 1             100                 0
    104               Documento 2             100                 0    
    105               Carpeta 1.1                 100                 0  
    106               Documento 3             105                 0
    107               Documento 4             101                 0              
    108               Documento 5             100                 0
    109               Carpeta 1.1.1              105                 0
    110               Documento 6             109                 0

Como verán en la segunda tabla el RegistroPadre apunta a otros registros dentro de la misma tabla.  Tambien que el campo contenedor sólo tiene valor en las carpetas principales dentro de un contenedor.  El resto de los registros no tienen ese valor.

Necesito lograr una consulta que por ejemplo me de todos los registros que estén dentro de la Carpeta 1
Contenedor     Codigo         Nombre             RegistroPadre
    850               100           Carpeta 1                     0
    850               103           Documento 1              100
    850               104           Documento 2              100
    850               105           Carpeta 1.1                  100
    850               108           Documento 5              105
    850               109           Carpeta 1.1.1               105
    850               110           Documento 6              109

En resumen necesito que me muestre todos los registros contenidos dentro de un contenedor específico.

No soy experto en SQL Server y de verdad agradeceré si alguien puede ayudarme con explicarme como puedo lograr este resultado.

Saludos y muchas gracias de antemano
Aldo




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)