Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2014, 14:55
guddy7
 
Fecha de Ingreso: octubre-2014
Mensajes: 2
Antigüedad: 9 años, 6 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!