Hola de nuevo compañero azuer... creo que no terminas de entender cuando es necesario aplicar una conversión y cuando no. Si tu problema es al momento de presentar la información, entonces TIENES QUE APLICAR LAS CONVERSIONES HASTA EL FINAL, o en tu caso en el SELECT EXTERIOR, en el Select interno no tienes caso que hagas conversiones, es más, no es conveniente porque estás realizando operaciones con fechas y para obtener el campo hora1 estás convirtiendo nuevamente a fecha. Prueba con esto:
Código SQL:
Ver originalSELECT T.*, CONVERT( VARCHAR(8), Salida - Entrada, 108) Horas1 FROM(
Hora ENTRADA,
(SELECT Hora FROM Chequeo
WHERE IdEvento =2 AND Fecha=ch.fecha AND idalumn=ch.idalumn) SALIDA
FROM dbo.Chequeo ch INNER JOIN dbo.DatosPersonales dp
ON (dp.idalumn=ch.idalumn)
WHERE IdEvento =1
) AS T
Si observas no hago ninguna conversión a los campos ENTRADA y SALIDA, la conversión la aplico al resultado de restar ambas fechas. No le veo ningún sentido al último select (el externo), pero es cuestión que pruebes y nos comentes.
Saludos
Leo.