-- questao 01 - FUC mostra nome do aluno e curso que esta matriculado
select alunos.nome, cursos.descricao
from alunos, cursos, cursos_oferecidos, matriculas
where alunos.codigo = matriculas.aluno and
           matriculas.curso_oferecido = cursos_oferecidos.codigo and
           cursos_oferecidos.curso = cursos.codigo
order by alunos.nome

-- FUC que mostra a quantidade de alunos matriculados por curso oferecido.
select curso_oferecido, cursos.descricao, count(*)
from cursos, cursos_oferecidos, matriculas
where matriculas.curso_oferecido = cursos_oferecidos.codigo and
           cursos_oferecidos.curso = cursos.codigo
group by curso_oferecido,cursos.descricao

-- FUC que mostra o nome do aluno e a bolsa de estudos que possui.
select alunos.nome, bolsas.descricao
from alunos, matriculas, bolsas
where alunos.codigo = matriculas.aluno and
           matriculas.bolsa = bolsas.codigo

select alunos.nome, bolsas.descricao
from (alunos join matriculas on alunos.codigo = matriculas.aluno) 
      left join bolsas on matriculas.bolsa = bolsas.codigo

select * from matriculas
-- FUC que mostra o curso e seus pré-requisitos.--
-- FUC nome dos cursos e pre
select c.descricao as curso, cr.descricao as prerequisito
from cursos c, prerequisitos pr, cursos cr
where c.codigo = pr.curso and
           pr.prerequisito = cr.codigo
order by c.descricao

select * from cursos
select * from prerequisitos

-- FUC que mostra quantos cursos o professor ministrou.
select nome, count(*) as nro_cursos
from professores, cursos_oferecidos
where professor=professores.codigo
group by nome

-- mostra os cursos oferecidos por mes e ano
-- FUC que mostra os cursos oferecidos por ano e mês.
select extract(year from inicio) as ano, 
       extract(month from inicio) as mes, 
          count(*)
from cursos_oferecidos
group by ano,mes
order by ano,mes