solucione mi problema. converti todo a segundos y luego formatee la hora de la siguiente manera.
funcion.
Código SQL
[-]
CREATE FUNCTION [dbo].[FormatHora]
(@Segundos float)
RETURNS varchar(50) AS
BEGIN
DECLARE @RES VARCHAR(50)
DECLARE @HORAS FLOAT
DECLARE @MINS FLOAT
DECLARE @SEGS FLOAT
DECLARE @RESTO FLOAT
SET @HORAS = @Segundos /60/60
SET @RESTO = @HORAS - FLOOR(@HORAS)
--LISTO HORAS
SET @HORAS = FLOOR(@HORAS)
SET @MINS = @RESTO * 60
SET @RESTO = @MINS - FLOOR(@MINS)
--LISTO MINS
SET @MINS = FLOOR(@MINS)
SET @SEGS = @RESTO * 60
SET @RES = CAST(@HORAS as varchar) + ':' + right('00'+cast(@MINS as
varchar),2) + ':' + right('00'+cast(@segs as varchar),2)
RETURN @RES
END
Utilizando la conulta anterior..
Código SQL
[-]
Declare @Fecha as smalldatetime
Declare @FechaM as smalldatetime
--Sacamos la Maxima Fecha Actual...
Set @Fecha=(Select Max(FechaControl)
From Control)
--Obtenemos la Fecha de 4 meses Atraz...
Set @FechaM=(DATEADD(mm, -4, @Fecha) )
Select Tiempo.div,Tiempo.DivName,Semana=dbo.ft_ieo_ObtenerSemana(Tiempo.FechaControl),
Times=dbo.FormatHora( SUM(DATEDIFF(s, CAST('00:00:00'AS datetime), CAST(Tiempo.TCD as datetime)))) ,
Anio=0
From(Select a1.div,DivName=Case a1.div When 42 Then 'MENDOZA'
When 43 Then 'CORDOVA'
When 44 Then 'BUENOS AIRES' End,
A1.LocName as Origen, A.LocOrigen,A2.LocName as Destino, A.LocDestino,A.HrEntrada,A.HrSalida,A.FechaControl ,
TCD=cast( (A.HrSalida - A.HrEntrada) as datetime)--,
--TCD=left(convert(varchar,(A.HrSalida - A.HrEntrada), 108), 8)
From Control A
Inner Join LocNames As A1
On A1.Loc=A.LocOrigen
Inner Join LocNames As A2
On A2.Loc=A.LocDestino
Where A.FechaControl >=@FechaM) Tiempo
Group By Tiempo.div,Tiempo.DivName,dbo.ft_ieo_ObtenerSemana(Tiempo.FechaControl)
muchas gracias por su ayuda..