MySQL - Insertar desde un select

 
Vista:

Insertar desde un select

Publicado por roberto carrillo (4 intervenciones) el 06/07/2018 14:55:49
Hola, espero esten bien. Paso a consultar.
Genero diariamente una consulta que me tare estos resultados:

"select * from ldatos;"
datetime, inout, legajo
"2018-01-01 07:00:00", 0, 1111
"2018-01-01 07:00:00", 0, 1113
"2018-01-01 07:01:00", 0, 1112
"2018-01-01 17:02:00", 1, 1111
"2018-01-01 18:00:00", 1, 1112
"2018-01-02 07:01:00", 0, 1111
"2018-01-02 07:00:00", 0, 1112
"2018-01-02 13:00:00", 1, 1111
"2018-01-02 13:01:00", 1, 1112
"2018-01-02 17:01:00", 0, 1111
"2018-01-02 17:00:00", 0, 1112
"2018-01-02 23:00:00", 1, 1111
"2018-01-02 23:00:00", 1, 1112


Que hoy guardo de esta forma:

ID FECHA LEGAJO INOUT HORA
01 '2018-01-01' 1111 0 '07:00:00'
02 '2018-01-01' 1113 0 '07:00:00'
03 '2018-01-01' 1112 0 '07:01:00'
04 '2018-01-01' 1111 1 '17:02:00'
05 '2018-01-01' 1112 1 '18:00:00'
06 '2018-01-02' 1111 0 '07:01:00'
07 '2018-01-02' 1112 0 '07:00:00'
08 '2018-01-02' 1111 1 '13:00:00'
09 '2018-01-02' 1112 1 '13:01:00'
10 '2018-01-02' 1111 0 '17:01:00'
11 '2018-01-02' 1112 0 '17:00:00'
12 '2018-01-02' 1111 1 '23:00:00'
13 '2018-01-02' 1112 1 '23:01:00'


Pero quisiera guardarla así:
--FECHA----LEGAJO-------0a-----------1a----------0b----------1b-----------0c----------1c
'2018-01-01' 1111 '07:00:00' '17:02:00' '00:00:00' '00:00:00' '00:00:00' '00:00:00'
'2018-01-01' 1112 '07:01:00' '18:00:00' '00:00:00' '00:00:00' '00:00:00' '00:00:00'
'2018-01-02' 1111 '07:01:00' '13:00:00' '17:01:00' '23:00:00' '00:00:00' '00:00:00'
'2018-01-02' 1112 '07:00:00' '13:01:00' '17:00:00' '23:01:00' '00:00:00' '00:00:00'
'2018-01-02' 1113 '07:00:00' '00:00:00' '00:00:00' '00:00:00' '00:00:00' '00:00:00'

En donde: Si es el mismo día y el mismo legajo me guarde hasta 6 horarios (entrada '0a' '0b' '0c', salida '1a' '1b' '1c') sino que siga con el próximo legajo del día, y después con el próximo día.
Será posible llegar a esto en una consulta o en varias? Creando y eliminando tablas hasta llegar a este resultado?
Desde ya muchas gracias!!
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
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Insertar desde un select

Publicado por leonardo_josue (414 intervenciones) el 06/07/2018 22:31:10
Hola Roberto Carrillo:

¿qué es lo que haz intentado hacer para obtener la consulta que deseas? porque supongo que haz intentado algo ¿cierto?

En realidad tienes muchas formas de obtener el resultado esperado, unas más complejas que otras. Una de ellas sería por ejemplo simulando la función PIVOT que lamentablemente no tiene MySQL, pero que se puede implementar. Pregúntale a San Google cómo puedes simular esta función y estoy seguro que te dará más de una respuesta.

Si esto no te sirve, puedes programar un Procedimiento Almacenado, que básicamente te da las mismas ventajas que un lenguaje de programación, donde tienes ciclos, condiciones, variables, etc. y en donde puedes programar también toda la lógica que necesites.

si tienes problemas para obtener el resultado esperado, entonces posteas cualquier cosa que hayas intentado de código, no importa si no funciona o si marca error. Si no no la consulta no arroja los resultados esperados, entonces nos dices qué es lo que está regresando para poder ver que falta. Si la consulta de marca error, entonces nos dices qué error es el que te está marcando el DBSM y así te ayudamos a corregirla o en su defecto te indicamos alguna otra forma para hacerlo.

Haz la prueba y nos comentas.

Saludos
Leo.
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