Lo que voy a preguntar es un embole... ni sé cómo redactarlo para que se entienda.
En un archivo MDB tengo 4 tablas (cada "->" representa una relación 1 a varios)
Cursos -> Modulos -> Ediciones -> Matricula (y ésta se relaciona con la tabla Alumnos, pero aquí no interesa.. al menos por el momento)
En ese mismo archivo MDB tengo 3 consultas (consConfirmados, consPresentes y consCertificados) que se encargan de contar en la tabla "Matricula" cuantos alumnos "Confirmados", "Presentes" y que recibieron "Certificado" hay, respectivamente, por cada "Edicion" de cada "Modulo" de cada "Curso"
Las 3 consultas son las siguientes:
consConfirmados:
Cuenta cuántos alumnos que se han matriculado confirmaron la asistencia
Código:
SELECT Matricula.Id_Edicion, Count(Matricula.Conf) AS Confirmados
FROM Matricula
WHERE (((Matricula.Conf)=-1))
GROUP BY Matricula.Id_Edicion;
consPresentes:
Cuenta cuántos alumnos que se han matriculado realmente asistieron
Código:
SELECT Matricula.Id_Edicion, Count(Matricula.Presente) AS Presentes
FROM Matricula
WHERE (((Matricula.Presente)=-1))
GROUP BY Matricula.Id_Edicion;
consCertificados:
Cuenta cuántos alumnos que se han matriculado recibieron Certificado de Asistencia
Código:
SELECT Matricula.Id_Edicion, Count(Matricula.Certificado) AS Certificados
FROM Matricula
WHERE (((Matricula.Certificado)=-1))
GROUP BY Matricula.Id_Edicion;
Finalmente hay una ConsultaFinal que hace un conteo de los alumnos matriculados e incorpora los 3 conteos anteriores arrojados por las 3 consultas ya mencionadas:
ConsultaFinal:
Cita: SELECT Cursos.Id_Curso, Cursos.Nom_Curso, Modulos.Id_Mod, Modulos.Nombre, Ediciones.Id_edicion, Ediciones.FechaIni, Ediciones.FechaFin, Count(Matricula.Id_Alumno) AS Matriculados, consConfirmados.Confirmados, consPresentes.Presentes, consCertificados.Certificados
FROM (Cursos LEFT JOIN Modulos ON Cursos.Id_Curso = Modulos.Id_Curso) LEFT JOIN ((((Ediciones LEFT JOIN consConfirmados ON Ediciones.Id_edicion = consConfirmados.Id_Edicion) LEFT JOIN consPresentes ON Ediciones.Id_edicion = consPresentes.Id_Edicion) LEFT JOIN consCertificados ON Ediciones.Id_edicion = consCertificados.Id_Edicion) LEFT JOIN Matricula ON Ediciones.Id_edicion = Matricula.Id_Edicion) ON Modulos.Id_Mod = Ediciones.Id_mod
GROUP BY Cursos.Id_Curso, Cursos.Nom_Curso, Modulos.Id_Mod, Modulos.Nombre, Ediciones.Id_edicion, Ediciones.FechaIni, Ediciones.FechaFin, consConfirmados.Confirmados, consPresentes.Presentes, consCertificados.Certificados
ORDER BY Cursos.Nom_Curso, Modulos.Nombre;
Ufff... ok, la idea es hacer sólo una sentencia SQL que me arroje el mismo resultado. Lo que no sé es cómo demonios hacerlo
¿Ideas? Gracias