Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Salida del Select como entrada de otro select

Estas en el tema de Salida del Select como entrada de otro select en el foro de Mysql en Foros del Web. Hola a todos! He empezado hace poco a gestionar bases de datos, básicamente estoy extrayendo cierta información sobre una BBDD. Soy nuevo en SQL y ...
  #1 (permalink)  
Antiguo 02/12/2014, 14:55
 
Fecha de Ingreso: octubre-2014
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Salida del Select como entrada de otro select

Hola a todos!

He empezado hace poco a gestionar bases de datos, básicamente estoy extrayendo cierta información sobre una BBDD. Soy nuevo en SQL y lo poco que se lo estoy aprendiendo en foros y totorales, siguiendo un mecanismo de prueba y error en mis consultas. Pero ahora mismo estoy muy estancado, no se como solventar el problema al que me estoy enfrentando.

Voy a intentar explcar un poco que es lo que me pasa.

Dispongo de una Base de Datos con 1 única tabla (llamada TICKETS), que gestiona "tíquets",con los siguientes parámetros:
  • Referencia: número de tíquet
  • Padre: indica si el tique proviene de un tiquet superior, indicando su referencia
  • Hijo: indica si el tiquet ha generado un subticket y cual es su referencia
  • Piloto: donde se ha generado el tíquet
  • Tiempo: tiempo que se ha tardado en resolver el tíquet

Un ejemplo de tabla seria el siguiente:



La información que quiero obtener está situada en la última columna, la de Tiempo. Sencillo se podría pensar en un principio. El problema está en los puñeteros "Padres" e "Hijos". Como he intentado explicar, los tíquets pueden enlazarse, por lo tanto el valor de Tiempo deberá ser la suma de todos los tíquets enlazados.

Me preguntaba si existía alguna instrucción del tipo IF... then. Por ejemplo(primeras filas de la imagen), si el tíquet tiene un valor no nulo en el campo HIJO (por ejemplo, 2), guarda el campo TIEMPO(15) y sumalo al campo TIEMPO del tíquet con REFERENCIA = HIJO, es decir, REFERENCIA=2 ->Tiempo=30. Es decir, hacer un select en función de este valor hacer un nuevo select


Como no se si hay alguna instrucción de este tipo, lo que he hecho ha sido lo siguiente:
1. Ejecutar un Select sacando solo los tiquets sin relación padre/hijo
2. Aqui viene el problema, sacar la información relacionada

select
TICK_PADRE.REFERENCIA as R
(TICK_PADRE.TIEMPO+TICK_HIJO.TIEMPO) as Tiempo total,
TICK_PADRE.PILOTO as Generacion PADRE
TICK_HIJO.PILOTO as Generacion HIJO

from TICKETS as TIK_PADRE, TICKETS as TIK_HIJO -- Creo 2 tablas
where
TIK_PADRE.REFERENCIA=TIK_PADRE.HIJO

Entiendo que la salida debería ser la siguiente



De ese modo, juntando la info sacada en el punto 1 y esta, podría obtener los datos que necesito.

No se si es correcto mi planteamiento o si hay alguna manera más fácil de hacerlo. Pienso que lo que me dificulta la extracción de datos es disponer de ellos en una sola tabla y tener que necesitar valores de un select para poder realizar la extracción completa.

Quedo a la espera de alguna de vuestras respuestas., os estaré muy agradecido.

Saludos!

Etiquetas: campo, entrada, salida, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:00.