ya esta resuelto amigo muchisimas gracias... y tenias razon vos con el left.. se los cambie en tres inner join que estaban relacionadas a la tabla inasistencia y en where habia hecho algo mal por que ponia i.fecha (referenciando a inasistenciaA) y lo cambie por ac. fecha (que guarda todas las inasistencias y asistencias del todos los dias)
en fin quedo asi.. (por las dudas alguien tenga algo parecido)
Código PHP:
select m.id_alumno,a.apellido,a.nombre,m.condicion ,
sum(case when e.id_estado=1 then cast(i.cantidad AS decimal(10,1)) end) AS JUSTIFICADAS,
sum(CASE WHEN e.id_estado=2 then cast(i.cantidad AS decimal(10,1)) end) AS INJUSTIFICADAS,
sum( CAST(i.cantidad as decimal(10,1))) as TOTAL
from alumnos a
inner join matriculas m on a.id_alumno =m.id_alumno
left join inasistenciasA i on a.id_alumno=i.id_alumno
left join motivos mo on mo.id_motivo= i.id_motivo
left join estados e on e.id_estado= i.id_estado
inner join AsistenciaCurso ac on ac.id_curso = m.id_curso
where m.id_curso ='1aCB' and ac.fecha <= '30/08/2011' and ac.fecha >= '20/08/2011'
group by m.id_alumno,a.apellido,a.nombre,m.condicion
De nuevo muchisimas gracias por tu tiempo