problema

08/09/2003 - 23:24 por miguel | Informe spam
tengo un problema con un CASE el cual me reclama por el
tipo de dato, en la tabla esta com ovarchar pero ya no se
donde mas poner chars para komverirlo. porfa ayudenme
aki esta el kodigo


select
case
when (((ROUND(Dat_Turnos_Extras.Hora_Salida,2)-
FLOOR(Dat_Turnos_Extras.Hora_Salida))*100)/60)




(((ROUND(Dat_Turnos_Extras.Hora_Termino,2)-
FLOOR(Dat_Turnos_Extras.Hora_Termino))*100)/60)

then cast(SUM(FLOOR
(Dat_Turnos_Extras.Hora_Termino))- SUM(FLOOR
(Dat_Turnos_Extras.Hora_Salida))+(((SUM(ROUND
(Dat_Turnos_Extras.Hora_Salida,2))-SUM(FLOOR
(Dat_Turnos_Extras.Hora_Termino)))*100)/60)
-
(((SUM(ROUND
(Dat_Turnos_Extras.Hora_Termino,2))-SUM(FLOOR
(Dat_Turnos_Extras.Hora_Termino)))*100)/60)as float)

else cast(SUM(FLOOR
(Dat_Turnos_Extras.Hora_Termino))- SUM(FLOOR
(Dat_Turnos_Extras.Hora_Salida))
+
(((SUM(ROUND
(Dat_Turnos_Extras.Hora_Termino,2))-SUM(FLOOR
(Dat_Turnos_Extras.Hora_Termino)))*100)/60)
-
(((SUM(ROUND
(Dat_Turnos_Extras.Hora_Salida,2))-SUM(FLOOR
(Dat_Turnos_Extras.Hora_Salida)))*100)/60)as float)
end,
CAST( Dat_Turnos_Extras.Hora_Salida AS float),cast
(Dat_Turnos_Extras.Hora_Termino as float)

FROM Dat_Turnos_Extras

GROUP BY Dat_Turnos_Extras.Hora_Salida,
Dat_Turnos_Extras.Hora_Termino


y el error

Servidor: mensaje 8114, nivel 16, estado 5, línea 1
Error al convertir el tipo de datos varchar a float.

Preguntas similare

Leer las respuestas

#6 Yolanda Herrero
09/09/2003 - 17:24 | Informe spam
Pues ahí tienes el problema. El código te quedaría así:

( A mi me funciona correctamente)

select
case
when (((ROUND(REPLACE(Dat_Turnos_Extras.Hora_Salida,':','.'),2)-
FLOOR(REPLACE(Dat_Turnos_Extras.Hora_Salida,':','.')))*100)/60)



(((ROUND(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.'),2)-
FLOOR(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.')))*100)/60)

then cast(SUM(FLOOR
(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.')))- SUM(FLOOR
(REPLACE(Dat_Turnos_Extras.Hora_Salida,':','.')))+(((SUM(ROUND
(REPLACE(Dat_Turnos_Extras.Hora_Salida,':','.'),2))-SUM(FLOOR
(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.'))))*100)/60)
-
(((SUM(ROUND
(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.'),2))-SUM(FLOOR
(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.'))))*100)/60)as float)

else cast(SUM(FLOOR
(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.')))- SUM(FLOOR
(REPLACE(Dat_Turnos_Extras.Hora_Salida,':','.')))
+
(((SUM(ROUND
(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.'),2))-SUM(FLOOR
(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.'))))*100)/60)
-
(((SUM(ROUND
(REPLACE(Dat_Turnos_Extras.Hora_Salida,':','.'),2))-SUM(FLOOR
(REPLACE(Dat_Turnos_Extras.Hora_Salida,':','.'))))*100)/60)as float)
end,
CAST( REPLACE(Dat_Turnos_Extras.Hora_Salida,':','.') AS float),cast
(REPLACE(Dat_Turnos_Extras.Hora_Termino,':','.') as float)

FROM Dat_Turnos_Extras

GROUP BY Dat_Turnos_Extras.Hora_Salida,
Dat_Turnos_Extras.Hora_Termino


"miguel" escribió en el mensaje
news:571101c376e5$e08bea00$
dos puntos
Respuesta Responder a este mensaje
#7 Liliana Sorrentino
09/09/2003 - 17:27 | Informe spam
Miguel,
Si pudieras cambiar el tipo de dato de Hora_Salida y Hora_Termino, por
DATETIME, creo que sería mucho más simple.
Saludos... Liliana.

select salida = convert(char(10), hora_salida, 108),
termino = convert(char(10), hora_termino, 108),
horas = datediff(hh,
dateadd(mi,
datediff(mi, hora_salida, hora_termino)%60,
hora_salida),
hora_termino),
minutos = datediff(mi, hora_salida, hora_termino)%60
from Turnos_Extras
group by hora_salida, hora_termino

select salida = convert(char(10), hora_salida, 108),
termino = convert(char(10), hora_termino, 108),
minutos = datediff(mi, hora_salida, hora_termino)
from Turnos_Extras
group by hora_salida, hora_termino

"miguel" escribió en el mensaje
news:06a301c376de$0ca05fc0$
if exists (select * from dbo.sysobjects where id > object_id(N'[dbo].[Dat_Turnos_Extras]') and OBJECTPROPERTY
(id, N'IsUserTable') = 1)
drop table [dbo].[Dat_Turnos_Extras]
GO

CREATE TABLE [dbo].[Dat_Turnos_Extras] (
[COD_EMPRESA] [varchar] (3) COLLATE
Modern_Spanish_CI_AS NULL ,
[COD_INSTALACION] [varchar] (3) COLLATE
Modern_Spanish_CI_AS NULL ,
[FECHA] [datetime] NULL ,
[RUT_EMPLEADO] [varchar] (12) COLLATE
Modern_Spanish_CI_AS NULL ,
[COD_ASISTENCIA] [int] NULL ,
[ASISTENCIA] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NULL ,
[COD_TURNO] [varchar] (1) COLLATE
Modern_Spanish_CI_AS NULL ,
[COD_TIPOPERSONAL] [int] NULL ,
[PERSONAL] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NULL ,
[COD_CARGO] [int] NULL ,
[CARGO] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NULL ,
[HORA_TERMINO] [varchar] (5) COLLATE
Modern_Spanish_CI_AS NULL ,
[HORA_SALIDA] [varchar] (5) COLLATE
Modern_Spanish_CI_AS NULL ,
[RUT_ENLACE] [varchar] (12) COLLATE
Modern_Spanish_CI_AS NULL ,
[RUT_REEMPLAZO] [varchar] (12) COLLATE
Modern_Spanish_CI_AS NULL
) ON [PRIMARY]
GO


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida