Considere o objetivo da gestão acadêmica da instituição de produzir um gráfico com a seguinte informação:
Supondo que a nota mínima para aprovação seja 5, a consulta SQL que corretamente recupera as informações para produzir o gráfico solicitado é
SELECT DISTINCT T.id AS ID_TURMA,
(SELECT COUNT(*)
FROM TURMASALUNOS
WHERE T.ID = TURMASALUNOS.turmaID AND TURMASALUNOS.nota >= 5) AS QTDE_APROVADOS,
(SELECT COUNT(*)
FROM TURMASALUNOS
WHERE t.id = TURMASALUNOS.turmaID AND TURMASALUNOS.nota < 5) AS QTDE_REPROVADOS
FROM TURMAS T;
SELECT COUNT(DISTINCT ALUNOS.id)
FROM ALUNOS, TURMAS, TURMASALUNOS
WHERE TURMASALUNOS.turmaID = TURMAS.id AND TURMASALUNOS.nota < 5 AND
TURMASALUNOS.alunoID = ALUNOS.id;
SELECT DISTINCT ALUNOS.id AS ID_ALUNO,
(SELECT COUNT(DISTINCT TURMASALUNOS.id)
FROM ALUNOS, TURMAS, TURMASALUNOS
WHERE TURMASALUNOS.turmaID = TURMAS.id AND TURMASALUNOS.nota >= 5 AND
TURMASALUNOS.alunoID = ALUNOS.id) AS QTDE_APROVADOS,
(SELECT COUNT(DISTINCT TURMASALUNOS.id)
FROM ALUNOS, TURMAS, TURMASALUNOS
WHERE TURMASALUNOS.turmaID = TURMAS.id AND TURMASALUNOS.nota < 5 AND
TURMASALUNOS.alunoID = ALUNOS.id) AS QTDE_REPROVADOS
FROM TURMAS, ALUNOS, TURMASALUNOS;
SELECT DISTINCT TURMASALUNOS.id AS ID_TURMA,
(SELECT TURMASALUNOS.id
FROM TURMASALUNOS
WHERE TURMASALUNOS.turmaID = TURMAS.id AND TURMASALUNOS.nota >= 5 AND
TURMASALUNOS.alunoID = ALUNOS.id) AS QTDE_APROVADOS,
(SELECT COUNT(DISTINCT TURMASALUNOS.id)
FROM TURMASALUNOS
WHERE TURMASALUNOS.turmaID = TURMAS.id AND TURMASALUNOS.nota < 5 AND
TURMASALUNOS.alunoID = ALUNOS.id) AS QTDE_REPROVADOS
FROM TURMAS, ALUNOS, TURMASALUNOS;
SELECT DISTINCT TURMAS.id AS ID_TURMA,
(SELECT TURMASALUNOS.id
FROM TURMAS
WHERE TURMASALUNOS.turmaID = TURMAS.id AND TURMASALUNOS.nota >= 5 AND
TURMASALUNOS.alunoID = ALUNOS.id) AS QTDE_APROVADOS,
(SELECT COUNT(DISTINCT TURMASALUNOS.id)
FROM TURMAS
WHERE TURMASALUNOS.turmaID = TURMAS.id AND TURMASALUNOS.nota < 5 AND
TURMASALUNOS.alunoID = ALUNOS.id) AS QTDE_REPROVADOS
FROM TURMAS, ALUNOS, TURMASALUNOS;