A ver, hombre de poca fe...
Vas a probar con esto, que significa básicamente lo siguiente...
Cogeme las fechas de entrada de los alumnos y haces esto
- si es el día uno, coges la hora y la conviertes a caracteres. Si no es día uno te quedas con el valor '00:00'. Te quedas con el valor más alto ( es decir, el que tenga un valor ).
- Así para cada día.
Además, me lo agrupas por alumno.
Código SQL
[-]
select clavealumno as clave,
max( case when extract(day from entrada) = 1 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 1" ,
max( case when extract(day from entrada) = 2 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 2" ,
max( case when extract(day from entrada) = 3 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 3" ,
max( case when extract(day from entrada) = 4 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 4" ,
max( case when extract(day from entrada) = 5 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 5" ,
max( case when extract(day from entrada) = 6 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 6" ,
max( case when extract(day from entrada) = 7 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 7" ,
max( case when extract(day from entrada) = 8 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 8" ,
max( case when extract(day from entrada) = 9 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 9" ,
max( case when extract(day from entrada) = 10 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 10" ,
max( case when extract(day from entrada) = 11 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 11" ,
max( case when extract(day from entrada) = 12 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 12" ,
max( case when extract(day from entrada) = 13 then cast(cast(entrada as time) as varchar(25)) else '00:00' end) as "DIA 13"
from asistencia
where
(
(clavealumno < 400)
and
(registroentrada between cast('10/1/2010'as date) and cast('10/15/2010' as date))
)
group by clavealumno
Lo pruebas, si funciona perfecto, pero te dejo de deberes que lo estudies y lo entiendas.
Nos informas, majete.
Saludos
PD: A ver si te ganas esa buena nota, aunque sea tarde.