Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabioemilio

Verificar todos os registros numa consulta usando o Case

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algo assim

 

Select idaluno,

Sum(CASE WHEN MATERIA = 'PORTUGUES' AND SITUACAO = 'APROVADO THEN 1 ELSE 0 END) PORTUGUES,

Sum(case when materia = 'ingles' and situacao = 'aprovado' then 1 else 0 end) ingles,

....

Group by idaluno

 

Ps editar em tablet é uma m.....

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.