Hola, espero que me ayuden.. mi problema es el siguiente:
Tengo que hacer un procedimiento que devuelva NombreCurso,NombreExamen,Fecha,AlumnosEnCurso,Rind ieronExamen,Aprobaron,Reprobaron,FaltanRendir
Mi código es el siguiente:
Código SQL:
Ver originalALTER PROCEDURE [dbo].[listarExamenesProfesor]
@Id_Profesor INT
AS
SELECT cu.Nombre AS CURSOS,ex.Nombre AS EXAMEN,ex.FecHora AS FECHA_Y_HORA,
COUNT(r.AlumnoId) AS RINDIERON,
(SELECT COUNT(r2.AlumnoId) FROM RESULTADO r2 WHERE r2.Nota >= 7)AS APROBARON,
(SELECT COUNT(r2.AlumnoId) FROM RESULTADO r2 WHERE r2.Nota < 7) AS REPROBARON
FROM CURSO cu LEFT JOIN EXAMEN ex ON cu.IdCurso=ex.CursoId LEFT JOIN RESULTADO r ON ex.IdExamen=r.ExamenId
LEFT JOIN Curso_Alumno cal ON cu.IdCurso=cal.IDCURSO
WHERE cu.ProfId=@Id_Profesor
GROUP BY cu.IdCurso,cu.Nombre,cu.Estado,cu.FecIni,cu.FecFin,cu.ProfId,
ex.IdExamen,ex.Nombre,ex.Descripcion,ex.FecHora,ex.Duracion,ex.CursoId
GO
El error es que me devuelve el mismo valor en las columnas Aprobaron,Reprobaron cuando en realidad tendría que devolver (por ejemplo: Resultado.Nota =7 y Resultado.Nota =4) Rindieron | Aprobaron | Reprobaron
2 | 1 | 1