SQL - De Interes! - Promediar Tiempo

 
Vista:

De Interes! - Promediar Tiempo

Publicado por Leon (2 intervenciones) el 11/09/2006 23:01:14
A ver quien me ayuda con esto:

Tengo un campo en una tabla(sql 2000) que almacena el tiempo transcurrido en segundos, del cierre de una solicitud.

Existen varias solicitudes del mismo tipo, y debo generar un reporte que me calcule el promedio de tiempo de todas las solicitudes realizadas de este año, pero me piden que se muestre 00:00:00 (horas:minutos:segundos) sin que los segundos y minutos sobrepasen el tope de 59, sin importar que las horas se sobrepasen de 24.
(ejm: 40:59:59)

¿Como hago para promediar el tiempo de cada grupo de solicitudes?

Hasta ahora he hecho:

select topico, (avg("TIEMPO DE ATENCION") as 'segundos Promedios',
from view_tareas_graficos group by topico

* Esto solo me genera el promedio de tiempo en segundos de cada grupo.

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

RE:De Interes! - Promediar Tiempo

Publicado por Isaías (5072 intervenciones) el 11/09/2006 23:27:56
Esta rutina te obtiene la diferencia entre 2 fechas en DIAS, HORAS MINUTOS y SEGUNDOS, solo cambiala para el proposito que necesitas:

--create table t1 (
--cFechaAl varchar(25),
--cFechaOk varchar(25),
--FAxDia int,
--FAxHora varchar(8)
--)
--go
--
--insert into t1 values('2006-05-26 13:30:08', '2006-05-26 13:45:03', 0, '00:14:55')
--insert into t1 values('2006-05-26 13:31:42', '2006-05-29 10:57:08', 2, '21:25:26')
--insert into t1 values('2006-05-26 13:31:59', NULL, 10, '21:02:57')
--go
--
--select
-- sum(datediff(second, FechaAl, FechaOk)) / (24 * 60 * 60) as dias,
-- (sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) / (3600) as horas,
-- ((sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) % (3600)) /
--(60) as minutos,
-- ((sum(datediff(second, FechaAl, FechaOk)) % (24 * 60 * 60)) % (3600)) %
--(60) as segundos
--from
-- (
-- select
-- cast(cFechaAl as datetime) as FechaAl,
-- isnull(cast(cFechaOk as datetime), dateadd(second, (FAxDia * 24 * 60 *
--60) + datediff(second, convert(varchar(10), getdate(), 126),
--convert(varchar(10), getdate(), 126) + 'T' + FAxHora), cast(cFechaAl as
--datetime))) as FechaOk
-- from
-- t1
-- ) as t
--go
--
--drop table t1
--go
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

RE:De Interes! - Promediar Tiempo

Publicado por Leon (2 intervenciones) el 14/09/2006 21:59:23
Ya la adapte a lo que tengo y quedo OK!
Gracias!
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