Projeto

Geral

Perfil

Tarefa #59 » consulta_completa_relatorio(1).sql

consulta utilizada para extrair dados do sigaa - Eric Diego Matozo Gonçalves Gonçalves, 24/03/2026 13:17 h

 
SELECT
mc.id_discente,
p.nome,
p.cpf_cnpj,
d.id_curso,
c.nome AS nome_curso,
d.id_curriculo AS id_curriculo_discente,
cr.id_curriculo AS id_curriculo_curriculo_ativo,
cr.ch_total_minima AS carga_horaria_minima_curso,
cr.semestre_conclusao_ideal AS duracao_padrao_periodos,
d.status,
sd.descricao AS descricao_status_discente,
d.data_colacao_grau,
d.data_integralizacao,
d.formando,
d.ch_integralizada,
idx.ira,
idx.iean,
idx.mc,
mc.ano,
mc.periodo,
mc.id_componente_curricular,
mc.id_componente_detalhes,
cc.codigo,
ccd.nome AS nome_componente_curricular,
ccd.ch_total AS carga_horaria_componente,
mc.id_turma,
mc.media_final,
mc.numero_faltas,
mc.porcentagem_frequencia,
mc.id_situacao_matricula,
sm.descricao AS situacao_matricula
FROM ensino.matricula_componente mc
JOIN public.discente d
ON d.id_discente = mc.id_discente
JOIN comum.pessoa p
ON p.id_pessoa = d.id_pessoa
LEFT JOIN public.curso c
ON c.id_curso = d.id_curso
LEFT JOIN public.status_discente sd
ON sd.status = d.status
LEFT JOIN (
SELECT DISTINCT ON (id_curso)
id_curso,
id_curriculo,
ch_total_minima,
semestre_conclusao_ideal
FROM graduacao.curriculo
WHERE ativo = true
ORDER BY id_curso, id_curriculo DESC
) cr
ON cr.id_curso = d.id_curso
LEFT JOIN (
SELECT
iad.id_discente,
MAX(CASE WHEN ia.sigla = 'IRA' THEN iad.valor END) AS ira,
MAX(CASE WHEN ia.sigla = 'IEAN' THEN iad.valor END) AS iean,
MAX(CASE WHEN ia.sigla = 'MC' THEN iad.valor END) AS mc
FROM ensino.indice_academico_discente iad
JOIN ensino.indice_academico ia
ON ia.id = iad.id_indice_academico
WHERE ia.sigla IN ('IRA', 'IEAN', 'MC')
GROUP BY iad.id_discente
) idx
ON idx.id_discente = mc.id_discente
LEFT JOIN ensino.componente_curricular cc
ON cc.id_disciplina = mc.id_componente_curricular
LEFT JOIN ensino.componente_curricular_detalhes ccd
ON ccd.id_componente_detalhes = mc.id_componente_detalhes
LEFT JOIN ensino.situacao_matricula sm
ON sm.id_situacao_matricula = mc.id_situacao_matricula
ORDER BY
mc.ano,
mc.periodo,
p.nome,
mc.id_componente_curricular;
(6-6/7)