Rafabrat 0 Denunciar post Postado Julho 5, 2012 Tenho uma tabela aluno cada aluno tem varias matriculas e cada matricula tem varias matriculasprovas eu preciso fazer que o select traga a tabela matricula prova apenas com a utima prova de cada aluno que se encaixem nas restrições fiz isso com um subselect funciona o problema é que tem muitos alunos e o select demorara muito ou nem sei se vai realizar deixei um tempo e não trouxe resultado select * from adem.MatriculaProva mp1 where mp1.dt_inicio in (select max(mp.dt_inicio) from Aluno a join Matricula m join Classe c join ClasseAnoEscolar cae join adem.MatriculaProva mp on a.cd_aluno = m.cd_aluno and m.cd_classe = c.cd_classe and c.cd_classe = cae.cd_classe and m.cd_matricula = mp.cd_matricula where year(mp.dt_inicio) = 2012 and mp.cd_prova not in(43,44,45) and cd_disciplina = 2 and a.cd_aluno in( 5791... )group by a.cd_aluno having count(a.cd_aluno) = 2 order by a.cd_aluno ) ; Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 6, 2012 Query básica (data máxima por matricula) select * from adem.MatriculaProva mp1 where mp1.dt_inicio = (select max(mp.dt_inicio) from MatriculaProva mp where mp.cd_matricula = mp1.cd_matricula ) Compartilhar este post Link para o post Compartilhar em outros sites