Verificar todos os registros numa consulta usando o Case
Prezados,Preciso de ajuda para saber como obter o retorno de uma Query (abaixo), tendo o nome dos alunos,nome das disciplinas,notas e status na tabela (view_proc_1) cujo resultado deve ser mostrado no campo situação, quando o aluno obtiver o status (campo) APR-Parcial em todas as disciplinas, caso isso ocorra, o campo situação armazenará o expressão APR, quando um aluno receber no campo status o REP-Parcial pelo menos em uma das 7 dirciplinas, então, o campo situação armazenará REP Cada aluno possui 7 disciplinas (matemática, historia, inglês,etc...) cada disciplina recebe no campo status a indicação de APR-Parcial e/ou REP-Parcial. A Query abaixo apesar de retorna o valor REP ou APR no campo situação, apenas verificar um único aluno (registro) e não todos os registros por nome de aluno, como deveria fazer, já que os mesmos possuem várias disciplinas.Preciso que select/case verifique todos as alunos em suas disciplinas, cujo o campo (situação) pode ser alterado para REP ou APR a depender da informação contida no campo status.select ano,serie,turma,categoria,nome_aluno,(Case when status='APR-Parcial' then 'APR' When status= 'REP-Parcial' then 'REP' Else 'OUT' end) situacao from bd_processual.view_proc_1group by serie,turma,nome_alunoorder by nome_aluno
Atenciosamente,
Fábio Emílio
Ainda preciso de ajuda!
Tentando uma segunda alternativa, mas sem sucesso!
select ano,serie,turma,categoria,nome_aluno,
(Case when nome_disciplina="portugues" and status='APR-Parcial' then 'APR'
when nome_disciplina="matematica" and status='APR-Parcial' then 'APR'
when nome_disciplina="portugues" and status='APR-Parcial' then 'APR'
when nome_disciplina="historia" and status='APR-Parcial' then 'APR'
when nome_disciplina="geografia" and status='APR-Parcial' then 'APR'
when nome_disciplina="ciencias" and status='APR-Parcial' then 'APR'
when nome_disciplina="ingles" and status='APR-Parcial' then 'APR'
when nome_disciplina="artes" and status='APR-Parcial' then 'APR'
When status= 'REP-Parcial' then 'REP'
Else 'OUT' end) situacao
from bd_processual.view_proc_1
group by serie,turma,nome_aluno
order by nome_aluno
se essa query funcionar, será a solução! Alguem pode me ajudar a estruturar corretamente?
select ano,serie,turma,categoria,nome_aluno,
(Case when nome_disciplina="portugues" and status='APR-Parcial' then '1'
When status= 'REP-Parcial' then '0'
Else 'OUT' end) MAT_1
(Case when nome_disciplina="matematica" and status='APR-Parcial' then '1'
When status= 'REP-Parcial' then '0'
Else 'OUT' end) MAT_2
(Case when nome_disciplina="historia" and status='APR-Parcial' then '1'
When status= 'REP-Parcial' then '0'
Else 'OUT' end) MAT_3
from bd_processual.view_proc_1
group by serie,turma,nome_aluno
order by nome_aluno
Discussão (2)
Carregando comentários...