Fórum Select dentro de outro select, como fazer? #473170
17/03/2014
0
como implementar esse select que está entre as linhas, lembro que retirando o mesmo o resto do código está funcionado normal.
begin
for
select n.disciplina_notas,
d.nome_disciplina,
count(*) as qtde_notas,
___________________________________________________________
select avg(MEDIAGLOBALANUAL),avg(MEDIAGLOBALFINAL)
from (select sum(cast(n1.nota as numeric(5,1)) + n2.nota ) / count(*) as MediaGlobalAnual,
coalesce(case when (n1.nota + n2.nota) < 50 then
((cast(n1.nota + n2.nota as numeric(5,1)) * 2) + n3.nota) / 3
else (n1.nota + n2.nota) end,0) as MEDIAGLOBALFINAL,
___________________________________________________________
(select n1.nota
from notas n1
where n1.disciplina_notas = n.disciplina_notas
and n1.matricula_aluno_notas = n.matricula_aluno_notas
and n1.codigo_turma_notas = n.codigo_turma_notas
and n1.bimestre = '1 SEMESTRE') nota_1,
(select n2.nota
from notas n2
where n2.disciplina_notas = n.disciplina_notas
and n2.matricula_aluno_notas = n.matricula_aluno_notas
and n2.codigo_turma_notas = n.codigo_turma_notas
and n2.bimestre = '2 SEMESTRE') nota_2,
(select n3.nota
from notas n3
where n3.disciplina_notas = n.disciplina_notas
and n3.matricula_aluno_notas = n.matricula_aluno_notas
and n3.codigo_turma_notas = n.codigo_turma_notas
and n3.bimestre = '1 RECUPERACAO') nota_3,
(select n4.nota
from notas n4
where n4.disciplina_notas = n.disciplina_notas
and n4.matricula_aluno_notas = n.matricula_aluno_notas
and n4.codigo_turma_notas = n.codigo_turma_notas
and n4.bimestre = '2 CHAMADA') nota_4
from notas n left join disciplina d on n.disciplina_notas = d.codigo
where n.matricula_aluno_notas =:MATRICULA_ALUNO
and n.codigo_turma_notas =:CODIGO_TURMA
group by n.disciplina_notas,
d.nome_disciplina,
n.matricula_aluno_notas,
n.codigo_turma_notas
into :CODIGO,
:NOME_DISCIPLINA,
:QTDE_NOTAS,
:nota1,
:nota2,
:nota3,
:nota4
do
begin
if (((nota1 + nota2) <50> 0)) then
media_global = (((nota1 + nota2) * 2) + coalesce(nota3,0)) / 3;
else media_global = (nota1 + nota2);
if (( (nota1 + nota2) <50> 0) and ((nota4) > 0)) then
media_2chamada = (((((nota1 + nota2) * 2) + coalesce(nota3,0)) / 3) + (nota4)) /2;
else media_2chamada = 0;
suspend;
end
end
Osmar
Curtir tópico
+ 0
Responder
Posts
18/03/2014
Joel Rodrigues
Qual é o erro que está dando? Já tentou colocar o select entre parênteses, como os demais?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)