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

Lapsos de Tiempo

Estas en el tema de Lapsos de Tiempo en el foro de SQL Server en Foros del Web. Saludos. Tengo una tabla donde se ingresan clientes, idCliente,Nombre,FechaCaptura,usuarioCaptura lo que necesito es sacar los tiempos muertos entre captura ejemplo 1 -Pepito Perez- -2012/06/04 09:00:00- ...
  #1 (permalink)  
Antiguo 05/06/2012, 10:42
orenxrei
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Lapsos de Tiempo

Saludos.

Tengo una tabla donde se ingresan clientes,

idCliente,Nombre,FechaCaptura,usuarioCaptura

lo que necesito es sacar los tiempos muertos entre captura ejemplo

1 -Pepito Perez- -2012/06/04 09:00:00- -usuario1-
2 -Chabelo Lopez- - 2012/06/04 09:20:00 - -usuario1-
3 -Señor Aguilera- -2012/06/04 09:50:00 - -usuario1-

en este escenario mi capturista me ingreso 3 datos en 1 hora y veo que se la paso 30 min sin hacer nada...como puedo sacar en una consulta ese lapso de tiempo...
  #2 (permalink)  
Antiguo 05/06/2012, 13:53
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Lapsos de Tiempo

¿Como sabes que hay 30 minutos sin hacer nada?, ¿acaso exite un tiempo limite de captura?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 06/06/2012, 08:40
orenxrei
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Lapsos de Tiempo

lamentablemente no podemos estar vigilando a los capturistas, el caso es que han estado llegando tarde o se van temprano y están haciendo sus mañas, por ejemplo en esos 30 min entre captura y captura, que estaban haciendo? y no hay un limite de captura pero tampoco deberían estar perdiendo mucho tiempo..
  #4 (permalink)  
Antiguo 06/06/2012, 09:08
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Lapsos de Tiempo

Por eso mi duda, yo trabaje durante muchos años en un Call Center y medir el "tiempo muerto" como lo quieres hacer, no es viable, ya que pueden existen muchos factores por los cuales no se "capturo" durante "X" tiempo, deberias utilizar supervisores de linea.
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 06/06/2012, 09:33
orenxrei
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Lapsos de Tiempo

si tienes razón...hay muchos factores...pero ps mi jefe lo necesita, independientemente ya le pase una lista donde me muestra a que hora comienzan a captura y a que hora terminan, y checando los tiempos veo que entre 5 y 10 min hay una captura...aun así quiero saber si se puede hacer algo como esto.
tabla origen
idCaptura----usuarioCaptura-----------fechaCaptura
1----------------pepito----------------2012-06-01 14:43:29.180
2----------------pepito----------------2012-06-01 14:47:43.000
5----------------pepito----------------2012-06-01 14:56:08.590

tabla deseada


idCaptura----usuarioCaptura------------fechaCaptura---------------------------------SigCaptura--------------------------Diferencia
1----------------pepito----------------2012-06-01 14:43:29.180----------------2012-06-01 14:47:43.000---------------- 4:14
2----------------pepito----------------2012-06-01 14:47:43.000---------------- 2012-06-01 14:56:08.590----------------9:13
5----------------pepito----------------2012-06-01 14:56:08.590-------------------NULL-------------------------------------------NULL

se puede hacer esto..

ahh y gracias por contestar!!! jejeje
  #6 (permalink)  
Antiguo 06/06/2012, 10:40
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: Lapsos de Tiempo

de que se puede se pude, puedes hacer un left join con la misma tabla y en el where poner donde la fecha2 sea mayor que la fecha 1

algo asi

select * from tabla1 as t1
left join tabla1 as t2 on (t1.usuariuo=t2.usuario)
where t2.fecha>t1.fecha


Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 06/06/2012, 11:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Lapsos de Tiempo

De acuerdo con Libras, insisto, sin molestar, deberias tener un INICIO DE CAPTURA y FIN DE CAPTURA, para poder medir REALMENTE los tiempos.

Saludos
__________________
MCTS Isaias Islas
  #8 (permalink)  
Antiguo 06/06/2012, 12:13
orenxrei
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Lapsos de Tiempo

ok, de hecho eso fue lo primero que hice, tener un inicio de captura y un final por dia
ejem...
usuario1----2012/06/05--09:20:00---15:53:00

lo que dice libra si funciona pero me repite los datos por ejemplo

usuario1----2012/06/05--09:20:00---09:23:00
usuario1----2012/06/05--09:20:00---09:53:00
usuario1----2012/06/05--09:20:00---10:30:00
usuario1----2012/06/05--09:20:00---15:53:00
usuario1----2012/06/05--09:23:00---09:23:00
usuario1----2012/06/05--09:23:00---09:53:00
usuario1----2012/06/05--09:23:00---10:30:00
usuario1----2012/06/05--09:23:00---15:53:00

y así sucesivamente,
tendría que hacer que me lo compare con la fecha que la sigue..pero no consigo eso
  #9 (permalink)  
Antiguo 06/06/2012, 12:57
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Lapsos de Tiempo

No, yo me referia a que si por ejemplo, el operador esta capturando una encuesta, tuvieras, el inicio de esa captura y cuando finalizara, se guardara la fecha (yyyymmdd hh:mm:ss) de finalizacion de la encuesta.

Asi, podrias obtener el TIEMPO REAL DE CAPTURA y comparar la FECHA INICIAL de una captura, contra la FECHA INICIAL, de la siguiente captura, obtendrias el "TIEMPO MUERTO" entre ambas capturas.
__________________
MCTS Isaias Islas
  #10 (permalink)  
Antiguo 07/06/2012, 11:08
orenxrei
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Lapsos de Tiempo

hey saludos al fin lo consegui...

Código SQL:
Ver original
  1. CREATE TABLE #Tiempo
  2.     (  
  3.         idCaptura INT IDENTITY,
  4.         FechaCaptura datetime,
  5.         usuarioCaptura VARCHAR(50),
  6.         accionModifica VARCHAR(25)
  7.     )
  8.    
  9.     INSERT INTO #Tiempo VALUES ('2012-06-06 09:21:10.233','usuario1','Insert')
  10.     INSERT INTO #Tiempo VALUES ('2012-06-06 09:32:43.293','usuario1','Insert')
  11.     INSERT INTO #Tiempo VALUES ('2012-06-06 09:46:35.263','usuario1','Insert')
  12.     INSERT INTO #Tiempo VALUES ('2012-06-06 09:55:43.073','usuario1','Insert')
  13.     INSERT INTO #Tiempo VALUES ('2012-06-06 10:03:00.973','usuario1','Insert');          
  14.    
  15.      WITH T  AS
  16.         (SELECT
  17.             usuarioCaptura,
  18.             CONVERT(CHAR,FechaCaptura,103)Fecha,
  19.             CONVERT(CHAR,FechaCaptura,108)Hora,
  20.             ROW_NUMBER() OVER(Partition BY usuarioCaptura ORDER BY usuarioCaptura, FechaCaptura) Nm
  21.         FROM #Tiempo
  22.             WHERE usuarioCaptura LIKE '%usuario1%'
  23.             )
  24.             SELECT  *,DateDiff(MINUTE,T2.Hora,T1.Hora) [LapsoEnMinutos] FROM    T T1/*Donde LapsoEnMinutos es la diferencia que hay entre captura*/
  25.             LEFT JOIN T T2  ON T1.Nm=T2.Nm-1
  26.             ORDER BY T1.Nm 
  27.     DROP TABLE #Tiempo;


Espero ayude a alguien....

Etiquetas: 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 13:59.