Pular para o conteúdo principal

Questão de Banco de Dados — SQL — UFCG 2016

Banco de DadosSQL
Código
qq235117
Banca
UFCG
Órgão
UFCG
Ano
2016
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Desenvolvimento de Sistemas
Escolha a alternativa que retorne os códigos dos alunos, as disciplinas, os anos, os períodos e a maior nota de cada aluno. Caso o aluno tenha se matriculado na disciplina mas não possua nota, deve-se retornar -1.
  1. ASELECT aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo, COALESCE(MAX(nota.nota), -1) FROM aluno INNER JOIN matricula ON aluno.id_aluno = matricula.id_aluno INNER JOIN disciplina ON disciplina.id_disciplina = matricula.id_disciplina LEFT OUTER JOIN nota ON nota.id_matricula = matricula.id_matricula GROUP BY aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo;
  2. BSELECT aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo, CASE MAX(nota.nota) IS NOT NULL THEN MAX(nota.nota) ELSE -1 END CASE FROM aluno INNER JOIN matricula ON aluno.id_aluno = matricula.id_aluno INNER JOIN disciplina ON disciplina.id_disciplina = matricula.id_disciplina LEFT OUTER JOIN nota ON nota.id_matricula = matricula.id_matricula GROUP BY aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo;
  3. CSELECT aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo, CASE IS_VALUE_NULL(MAX(nota.nota)) THEN MAX(nota.nota) ELSE -1 END FROM aluno INNER JOIN matricula ON aluno.id_aluno = matricula.id_aluno INNER JOIN disciplina ON disciplina.id_disciplina = matricula.id_disciplina LEFT OUTER JOIN nota ON nota.id_matricula = matricula.id_matricula GROUP BY aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo;
  4. DSELECT aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo, COALLESCE(MAX(nota.nota), -1) FROM aluno INNER JOIN matricula ON aluno.id_aluno = matricula.id_aluno INNER JOIN disciplina ON disciplina.id_disciplina = matricula.id_disciplina LEFT OUTER JOIN nota ON nota.id_matricula = matricula.id_matricula GROUP BY aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo;
  5. ESELECT aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo, IF_IS_NULL(MAX(nota.nota), -1) FROM aluno INNER JOIN matricula ON aluno.id_aluno = matricula.id_aluno INNER JOIN disciplina ON disciplina.id_disciplina = matricula.id_disciplina LEFT OUTER JOIN nota ON nota.id_matricula = matricula.id_matricula GROUP BY aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo;
Revelar gabarito e comentário

GabaritoA — SELECT aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo, COALESCE(MAX(nota.nota), -1) FROM aluno INNER JOIN matricula ON aluno.id_aluno = matricula.id_aluno INNER JOIN disciplina ON disciplina.id_disciplina = matricula.id_disciplina LEFT OUTER JOIN nota ON nota.id_matricula = matricula.id_matricula GROUP BY aluno.codigo, disciplina.nome, matricula.ano, matricula.periodo;

Link permanente: /questoes/qq235117