Si no entiendo mal, la tabla MateriaProfesor es la que tiene todas las clases a las que deberían asistir los profesores. Entonces la tabla MateriaProfesor debería ser la única de la clausula FROM. Además si pones el filtro
ASI_FechaEntrada = '09/09/2004', no te mostrará los que no se encuentran en la tabla Asistencia, creo que debería funcionar de la siguiente manera:
Código SQL
[-]
Select DatosPersonales_id, DAT_Apellido + ', ' + DAT_Nombres,ASI_id_Profesor,ASI_HoraEntrada,ASI_FechaEntrada,
MPR_Dia, MPR_Division
From MateriaProfesor.db
left outer join Profesores.db on
MPR_id_Profesor = Profesores_id
left outer join Asistencia.db on
ASI_id_Profesor = Profesores_id
left outer JOIN DatosPersonales.db on
pro_id_DatosPersonales = DatosPersonales_id
left outer join Materias.db on
MPR_id_Materia = Materias_Id
where (ASI_FechaEntrada = '09/09/2004' or
MPR_id_Profesor not in (select ASI_id_Profesor from Asistencia.db
where ASI_FechaEntrada = '09/09/2004'))
and MPR_Dia = 'Jueves'
and PRO_Condicion0 = 'A'
and MPR_Turno = 'T'
un saludo