Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Pedro Castillo Terrones en 15 Enero 2012, 19:04 pm



Título: Ayuda con sonsulta sql
Publicado por: Pedro Castillo Terrones en 15 Enero 2012, 19:04 pm
Estimados, necesito que me puedan apoyar con lo siguiente:
Tengo las siguientes tablas en mi base de datos mysql:

1. TABLA AREAS

COD_AREA   DES_AREA
--------------------------
MOL           MOLIENDA
TRA           TRANSPORTE
MAQ           MAQUINADO
HOR           HORNOS


2. TABLA EQUIPO

COD_EQUI           NOM_EQUI    COD_AREA
--------------------------------------------------
MOL001      MOLINO FVH   MOL
MOL002      MOLINO 50HP   MOL
TRA001      FAJA TRANSP   TRA
TRA002      FAJA LONG           TRA
MAQ001      TORNO      MAQ
MAQ002      FRESA      MAQ
HOR001      HORNO 10M3   HOR
HOR002      HORNO 12M3   HOR


3. TABLA INSPECC

COD_EQUI NUM_INSP    C_N_INSP   DESC_NUM_INSP
--------------------------------------------------------------
MOL001      1      0010      INSPECCION DE ALIMENTADOR
MOL001      2      0021      INSPECCION DE FAJAS
MOL002      1      1532      INSPECCION DE LINEAS AUX
MOL002      2      2342      INSPECCION DE RESIST.
TRA001      1      1432      INSPECCION DE FLUJO
TRA001      2      1234      INSPECCION DE POTENCIA
TRA002      1      1121      INSPECCION DE BOMBA
TRA002      2      1145      INSPECCION DE RODAJE
MAQ001      1      1187      INSPECCION DE SELLO
MAQ001      2      1108      INSPECCION DE LUBR
MAQ002      1      1561      INSPECCION DE RUIDO
MAQ002      2      1297      INSPECCION DE MEC.
HOR001      1      1378      INSPECCION DE EMPAQ
HOR001      2      1812      INSPECCION DE REVOL
HOR002      1      1939      INSPECCION DE BALANZ
HOR002      2      2533      INSPECCION DE SENSOR


4. TABLA RUTA

COD_RUTA   COD_EQUI   NUM_INSP
-----------------------------------------------------------
1              MOL001      1
1              MOL001      2
2              MOL002      1
2              MOL002      2
3              TRA001      1
3              TRA001      2
4              TRA002      1
4              TRA002      2
5              MAQ001      1
5              MAQ001      2
6              MAQ002      1
6              MAQ002      2
7              HOR001      1
7              HOR001      2
8              HOR002      1
8              HOR002      2


5. RUTA_INSP

COD_RUTA   NOM_RUTA   FECHA      FRECUENCIA
----------------------------------------------------------------
1      RUTA 3 DIAS           01/01/2012   3
2      RUTA 5 DIAS           02/01/2012   5
3      RUTA 7 DIAS           03/01/2012   7
4      RUTA 10 DIAS           04/01/2012   10
5      RUTA 15 DIAS           05/01/2012   15
6      RUTA 21 DIAS           06/01/2012   21
7      RUTA 30 DIAS           07/01/2012   30
8      RUTA 40 DIAS           08/01/2012   40
9      RUTA 45 DIAS           09/01/2012   45


6. NIVELES


COD_NIVEL   NOM_NIVE
-----------------------------
0010      NIVEL 17
0021      NIVEL 13
1532      NIVEL 15
2342      NIVEL 11
1432      NIVEL 25
1234      NIVEL 5
1121      NIVEL 27
1145      NIVEL 31
1187      NIVEL 29
1108      NIVEL 1
1561      NIVEL 7
1297      NIVEL 23
1378      NIVEL 21
1812      NIVEL 9
1939      NIVEL 3
2533      NIVEL 19



Que consulta en sql deberia hacer para que el resultado sea de la aiguiente manera

NOM_AREA   FRECUENCIA   NOM_EQUI   NOM_NIVE   DESC_NUM_INSP         FECHA
------------------------------------------------------------------------------------------------------------
MOLIENDA   3      MOLINO FVH   NIVEL 17   INSPECCION DE ALIMENTADOR   01/01/2012
MOLIENDA   3      MOLINO FVH   NIVEL 13   INSPECCION DE FAJAS      02/01/2012
MOLIENDA   5      MOLINO 50HP   NIVEL 15   INSPECCION DE LINEAS AUX   03/01/2012
MOLIENDA   5      MOLINO 50HP   NIVEL 11   INSPECCION DE RESIST.      04/01/2012
TRANSPORTE   7      FAJA TRANSP   NIVEL 25   INSPECCION DE FLUJO      05/01/2012
TRANSPORTE   7      FAJA TRANSP   NIVEL 5      INSPECCION DE POTENCIA      06/01/2012
.
.
.
y asi sucesivamente


Cabe mencionar que en la Tabla INSPECC la columna C_N_INSP es equivalente a la tabla NIVELES columna COD_NIVEL   
Este es solo un ejemplo, en realidad mis tablas tienen cientos de lineas, pero la estructura es la misma y no puedo modificarla.
Espero puedan ayudarme
Gracias


Título: Re: Ayuda con sonsulta sql
Publicado por: Shell Root en 16 Enero 2012, 01:34 am
Que tienes hasta el momento? Sabes usar INNER JOIN? De donde sale el campo NOM_AREA?


Título: Re: Ayuda con sonsulta sql
Publicado por: Pedro Castillo Terrones en 16 Enero 2012, 14:14 pm
NOM_AREA = DES_AREA, se usar el JOIN, no a un nivel avanzado pero si lo basico para unir tablas, pero donde se me dificultan las cosas son con las tablas 3, 4 y 5


Título: Re: Ayuda con sonsulta sql
Publicado por: Shell Root en 16 Enero 2012, 21:06 pm
Por qué?


Título: Re: Ayuda con sonsulta sql
Publicado por: Pedro Castillo Terrones en 17 Enero 2012, 18:38 pm
Porque que?


Título: Re: Ayuda con sonsulta sql
Publicado por: 2Fac3R en 17 Enero 2012, 18:52 pm
pero donde se me dificultan las cosas son con las tablas 3, 4 y 5

¿Porque se te dificulta? -.-


Título: Re: Ayuda con sonsulta sql
Publicado por: Pedro Castillo Terrones en 17 Enero 2012, 19:53 pm
¿Será porque no se como hacerlo?


Título: Re: Ayuda con sonsulta sql
Publicado por: fran800m en 17 Enero 2012, 20:24 pm
Citar
¿Será porque no se como hacerlo?

¿ Será que te preguntan porque un inner join es lo mismo con 2 tablas que con 3, 4, 5, ... 127478 ?

¿ Será que como todavía tengas la poca verguenza de ponerte impertinente con quien puede ayudarte te va a ayudar Rita la cantaora ?


Título: Re: Ayuda con sonsulta sql
Publicado por: Pedro Castillo Terrones en 23 Enero 2012, 21:34 pm
Gracias frann, pero cuando junto mas de 4 tablas me arroja demasiados resultados, gracias de todas maneras


Título: Re: Ayuda con sonsulta sql
Publicado por: fran800m en 24 Enero 2012, 20:42 pm
achorao, pega la consulta y vamos a ver qué puede estar pasando, será cuestión de acotar más la consulta con where o usando más de un punto de unión, pero a más tablas más resultados.

Tu postea que todo se saca adelante.