Trabalho banco
Por: Evandro.2016 • 23/8/2017 • 1.244 Palavras (5 Páginas) • 739 Visualizações
...
-- JOIN estudante ON nota.estudante_id = estudante.id
-- where disciplina.id = '1' order by nota.nota1 desc
-- 15) Para uma determinada Disciplina gerar a lista de todos os Estudantes e a média obtida nas atividades avaliativas
-- select estudante.nome, nota.nota_final
-- from nota JOIN disciplina ON nota.disciplina_id = disciplina.id
-- JOIN estudante ON nota.estudante_id = estudante.id
-- where disciplina.id = '1'order by nota_final desc
-- 16) Listagem dos Estudantes que não fizeram uma Atividade Avaliativa
-- select estudante.nome, nota.nota1, nota.nota2
-- from nota JOIN disciplina ON nota.disciplina_id = disciplina.id
-- JOIN estudante ON nota.estudante_id = estudante.id
-- where disciplina.id = '1' and (nota.nota1 IS NULL or nota.nota2 IS NULL)
-- 17) Listagem dos Estudantes que zeraram numa Atividade Avaliativa
-- select estudante.nome, nota.nota1, nota.nota2
-- from nota JOIN disciplina ON nota.disciplina_id = disciplina.id
-- JOIN estudante ON nota.estudante_id = estudante.id
-- where disciplina.id = '1' and (nota.nota1 = '0' or nota.nota2 = '0')
-- 18) Listagem dos Estudantes de uma Disciplina, ordenados pela média das maiores notas
-- select estudante.nome, nota.nota_final
-- from nota JOIN disciplina ON nota.disciplina_id = disciplina.id
-- JOIN estudante ON nota.estudante_id = estudante.id
-- where disciplina.id = '1' order by nota.nota_final desc
-- 20. Listagem por Curso de todas as Disciplinas e suas respectivas cargas horárias, ordenadas por período
select DISTINCT curso.nome, disciplina.nome, disciplina.carga_horaria,turma.periodo
from disciplina JOIN turma ON disciplina.id_turma = turma.id
JOIN curso ON turma.id_curso = curso.id
order by turma.periodo
-- 21. Listagem por Curso da carga horária total do Curso
--select * from curso
--somatoria da carga horaria das disciplinas -> carga horaria do curso
select SUM (disciplina.carga_horaria) ,curso.carga_horaria
from disciplina JOIN turma ON disciplina.id_turma = turma.id
JOIN curso ON turma.id_curso = curso.id
group by curso.carga_horaria
- 22. Listagem por Curso da carga horária total por período
select SUM (disciplina.carga_horaria) ,curso.carga_horaria, turma.periodo,curso.id
from disciplina JOIN turma ON disciplina.id_turma = turma.id
JOIN curso ON turma.id_curso = curso.id
group by curso.id, turma.periodo
-- 24. Percentual de frequência de um Estudante numa Disciplina
select estudante.nome, disciplina.nome,
((sum (case when frequencia.hora_aula1 = 'F' then 1 end) + (case when frequencia.hora_aula2 = 'F' then 1 end)) * 100/ disciplina.carga_horaria)
from frequencia JOIN disciplina ON frequencia.disciplina_id = disciplina.id
JOIN estudante ON frequencia.estudante_id = estudante.id
WHERE disciplina.id = 1
group by estudante.nome, disciplina.nome, disciplina.carga_horaria, frequencia.hora_aula1, frequencia.hora_aula2
-- 26. Relação de todos os Estudantes de uma determinada Turma, suas avaliações e respectivas notas.
select turma.id,estudante.nome,nota.nota1, nota.nota2, nota.nota_final
from nota JOIN estudante ON nota.estudante_id = estudante.id
JOIN turma ON estudante.id_turma = turma.id
where turma.id = 1222
-- 27. Turma com maior índice de aprovação numa determinada Disciplina
select turma.id,count(case when nota.nota_final >= '7' then 1 end)
from nota JOIN disciplina ON nota.disciplina_id = disciplina.id
JOIN turma ON disciplina.id_turma = turma.id
where disciplina.id = 1
group by turma.id
-- 28. Para todos os Cursos e Disciplinas listar a turma com maior índice de aprovação, ordenados por Curso e Disciplina
select turma.id, curso.nome, disciplina.nome ,count(case when nota.nota_final >= '7' then 1 end)
from nota JOIN disciplina ON nota.disciplina_id = disciplina.id
JOIN turma ON disciplina.id_turma = turma.id
JOIN curso ON turma.id_curso = curso.id
group by turma.id, disciplina.nome,curso.nome
order by curso.nome, disciplina.nome
-- 29. Listagem por Curso e Disciplina de todos os Estudantes com o respectivo número total de faltas, num intervalo de datas.
select
...