GARANTIR DESCONTO

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

Osmar

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar