SQL - Salida del select, como entrada de otro select

 
Vista:
sin imagen de perfil

Salida del select, como entrada de otro select

Publicado por Alex (4 intervenciones) el 02/12/2014 22:04:56
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:

Captura_de_pantalla_2014-12-02_a_les_22.03.26

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

Captura_de_pantalla_2014-12-02_a_les_21.41.37

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!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias Islas
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Salida del select, como entrada de otro select

Publicado por Isaias Islas (1921 intervenciones) el 02/12/2014 22:37:52
¿Qué tipo de base de datos, que motor?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Salida del select, como entrada de otro select

Publicado por Alex (4 intervenciones) el 03/12/2014 07:51:11
Pues corresponde a una base d datos oracle, a la cual accedo a partir del cliente TORA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar