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

MYSQL gestor Entradas Salidas

Estas en el tema de MYSQL gestor Entradas Salidas en el foro de Bases de Datos General en Foros del Web. Buenas a todos chicos. Os quería preguntar por un tema de consultas MYSQL. Tengo esta tabla básica de entradas y salidas de gente de la ...
  #1 (permalink)  
Antiguo 24/03/2015, 13:21
 
Fecha de Ingreso: noviembre-2012
Mensajes: 53
Antigüedad: 12 años
Puntos: 1
Pregunta MYSQL gestor Entradas Salidas

Buenas a todos chicos.
Os quería preguntar por un tema de consultas MYSQL.
Tengo esta tabla básica de entradas y salidas de gente de la empresa.

No se le pueden añadir mas datos a la tabla ni nada por el estilo por que vienen de una aplicación de terceros.

Con esos pocos datos tengo que mostrar mediante php de un determinado dia el numero de salidas de cada persona (hasta ahí con un count y poco mas hecho) pero también el tiempo total que ha estado fuera durante ese dia haciendo como una resta de tiempo que sale y tiempo en el que entra de nuevo si ambos datos estuvieran el la misma fila no habría problema pero como vereis en este ejemplo cada fila reflaja o una salida o una entrada.



tambien hay gente que pasa a sus compañeros por lo que vereis mas salidas que entradas y salidas a lo mejor con 10 segundos de diferencia que es cuando pasa su compañero con la tarjeta del otro.

Me gustaría una consulta que elimine las salidas de una misma persona que su diferencia sea menor o igual a 10 segundos.
Pero por mucho que lo he intentado no lo he conseguido.

y lo otro sería hacer la resta de salidas y entradas aunque haya mas salidas que entradas normalmente lo cual veo dificil.

Bueno Gracias de antemano
Si consiguo la respuesta os lo comentaré aqui gracias
  #2 (permalink)  
Antiguo 24/03/2015, 13:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: MYSQL gestor Entradas Salidas

No es difícil de lograr, pero empecemos con tus prueba.
Postea los intentos que hiciste.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/03/2015, 13:47
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: MYSQL gestor Entradas Salidas

Me gusto la mancha de pintura para tapar el nombre, y el nombre del susodicho en el select jejejejeje


Se puede hacer algo como esto, solo es buscar las funciones equivalentes en mysql(timediff creo)


Ojo el codigo esta en sql server
Código SQL:
Ver original
  1. CREATE TABLE #temp(
  2. fecha1 datetime,
  3. nombre VARCHAR(20),
  4. tipo VARCHAR(10)
  5. )
  6.  
  7.  
  8.  
  9.  
  10. INSERT INTO #temp VALUES (getdate(),'Libras','entrada')
  11. INSERT INTO #temp VALUES (dateadd(mi,1,getdate()),'Libras','salida')
  12. INSERT INTO #temp VALUES (dateadd(mi,1,getdate()),'Libras','entrada')
  13. INSERT INTO #temp VALUES (dateadd(mi,1,getdate()),'Libras','salida')
  14.  
  15.  
  16.  
  17. SELECT datediff(mi,t1.fecha1,t2.fecha1) AS minutos, t1.fecha1 AS fecha_entrada, t2.fecha1 AS fecha_salida, t1.nombre FROM (SELECT * FROM #temp WHERE tipo='entrada') AS t1
  18. INNER JOIN (SELECT * FROM #temp WHERE tipo='salida') AS t2 ON (t1.nombre=t2.nombre AND t1.fecha1<t2.fecha1)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 24/03/2015, 14:00
 
Fecha de Ingreso: noviembre-2012
Mensajes: 53
Antigüedad: 12 años
Puntos: 1
Respuesta: MYSQL gestor Entradas Salidas

he intentado subconsultas como esta

Código SQL:
Ver original
  1. mysql> SELECT * FROM salidas WHERE nombre="X" AND fecha='201
  2. 5-03-23' AND tipo="SALIDA CALLE" AND timediff(hora,(SELECT hora FROM salidas LIMIT 1))>'00:00:10';
  3.  
  4.  
  5. mysql> SELECT * FROM salidas salidas0 WHERE nombre="JOAQUIN RIZO PLANESAS" AND fecha='2015-03-23' AND tipo="SALIDA CALLE" AND hora= ANY(SELECT hora FROM salidas
  6.  WHERE timediff(salidas0.hora,hora)>'00:00:10');

Última edición por gnzsoloyo; 24/03/2015 a las 15:04
  #5 (permalink)  
Antiguo 24/03/2015, 14:17
 
Fecha de Ingreso: noviembre-2012
Mensajes: 53
Antigüedad: 12 años
Puntos: 1
Respuesta: MYSQL gestor Entradas Salidas

esta en teoria funciona
Código SQL:
Ver original
  1. mysql> SELECT * FROM salidas salidas0 WHERE nombre="JOAQUIN RIZO PLANESAS" AND f
  2. echa='2015-03-23' AND tipo="SALIDA CALLE" AND hora IN(SELECT hora FROM salidas
  3. WHERE salidas0.hora>=hora AND +timediff(salidas0.hora,hora)>='00:00:10');

pero claro yo quiero que salgo un dato y el otro no pero con esto no sale por que ambas horas cumplen la restrinccion

Última edición por gnzsoloyo; 24/03/2015 a las 15:04
  #6 (permalink)  
Antiguo 24/03/2015, 14:20
 
Fecha de Ingreso: noviembre-2012
Mensajes: 53
Antigüedad: 12 años
Puntos: 1
Respuesta: MYSQL gestor Entradas Salidas

Libra muchas gracias pero es que no entiendo tu consulta SQL asi que no se muy bien como transpasarla a lo mio

Etiquetas: dificil, empresa, entrada, mysql, personal, salida
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 12:54.