Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fiz a seguinte query:
SELECT nom_rh,dsc_nivel_formacao
FROM Nivel_Formacao
join Formacao
on Nivel_Formacao.cod_nivel_formacao=Formacao.cod_nivel_formacao
join Recurso_Humano
on Formacao.seq_rh=Recurso_Humano.seq_rh
ORDER BY nom_rh ASC
Resultado:
nom_rh dsc_nivel_formacao
Abel Antônio da Silva Graduação
Abel Antônio da Silva Mestrado
Abel Antônio da Silva Doutorado
Abel Antônio da Silva Extensão universitária
Abel Antônio da Silva Extensão universitária
Abel Antônio da Silva Curso de curta duração
Abel Antônio da Silva Curso de curta duração
Abel Antônio da Silva Curso de curta duração
Abel Antônio da Silva Curso de curta duração
Adalberto Antonio Batista Arcelo Doutorado
Adalberto Antonio Batista Arcelo Mestrado
Adalberto Antonio Batista Arcelo Graduação
Adalberto Antonio Batista Arcelo Especialização
Gostaria de saber como selecionar a maior graduação do professor, uma vez que o nome do professor aparece duplicado na lista por conta das titulações que ele possui.
>
SELECT nom_rh,dsc_nivel_formacao
FROM Nivel_Formacao
join Formacao
on Nivel_Formacao.cod_nivel_formacao=Formacao.cod_nivel_formacao
join Recurso_Humano
on Formacao.seq_rh=Recurso_Humano.seq_rh
and Formacao.cod_nivel_formacao = (SELECT max(Formacao.cod_nivel_formacao)
FROM Nivel_Formacao Nivel_Formacao2
join Formacao Formacao2
on Nivel_Formacao2.cod_nivel_formacao=Formacao2.cod_nivel_formacao
join Recurso_Humano Recurso_Humano2
on Formacao2.seq_rh=Recurso_Humano2.seq_rh
and Recurso_Humano2.seq_rh = Recurso_Humano.seq_rh)Ceio que MAX resolve.
o MAX não resolve, por conta do cod_nivel_formacao não ser de acordo com o nivel de graduação do professor. Veja a tabela Nivel_Formacao:
cod_nivel_formacao dsc_nivel_formacao seq_ordem_formacao
1 Graduação 4
2 Especialização 6
3 Mestrado 9
4 Doutorado 10
5 Pós-Doutorado 12
6 Livre Docência 11
7 Ensino Profissional de nível técnico 3
8 Extensão universitária 0
9 Mestrado profissionalizante 8
A Ensino Fundamental (1o grau) incompleto 0
B Ensino Fundamental (1o grau) 1
C Ensino Médio (2o grau) 2
D Especialização - Residência médica 5
E MBA 7
F Curso de curta duração 0
X Aperfeiçoamento 0
Y Outros 0
Z Não Informado 0
Eu tenho que falar que o dsc_nivel_formacao = o POS DOUTORADO é o maior, DEPOIS DOUTORADO, MESTRADRO ETC ...
use seq_ordem_formacao :
SELECT nom_rh,dsc_nivel_formacao
FROM Nivel_Formacao
join Formacao
on Nivel_Formacao.cod_nivel_formacao=Formacao.cod_nivel_formacao
join Recurso_Humano
on Formacao.seq_rh=Recurso_Humano.seq_rh
and Formacao.seq_ordem_formacao = (SELECT max(Formacao.seq_ordem_formacao)
FROM Nivel_Formacao Nivel_Formacao2
join Formacao Formacao2
on Nivel_Formacao2.cod_nivel_formacao=Formacao2.cod_nivel_formacao
join Recurso_Humano Recurso_Humano2
on Formacao2.seq_rh=Recurso_Humano2.seq_rh
and Recurso_Humano2.seq_rh = Recurso_Humano.seq_rh)>
use seq_ordem_formacao :
SELECT nom_rh,dsc_nivel_formacao
FROM Nivel_Formacao
join Formacao
on Nivel_Formacao.cod_nivel_formacao=Formacao.cod_nivel_formacao
join Recurso_Humano
on Formacao.seq_rh=Recurso_Humano.seq_rh
and Formacao.seq_ordem_formacao = (SELECT max(Formacao.seq_ordem_formacao)
FROM Nivel_Formacao Nivel_Formacao2
join Formacao Formacao2
on Nivel_Formacao2.cod_nivel_formacao=Formacao2.cod_nivel_formacao
join Recurso_Humano Recurso_Humano2
on Formacao2.seq_rh=Recurso_Humano2.seq_rh
and Recurso_Humano2.seq_rh = Recurso_Humano.seq_rh)Perfeito Motta. Obrigado pela ajuda. Qdo tiver mais dúvidas lhe solicitarei novamente.
SELECT nom_rh,dsc_nivel_formacao
FROM Nivel_Formacao
join Formacao
on Nivel_Formacao.cod_nivel_formacao=Formacao.cod_nivel_formacao
join Recurso_Humano
on Formacao.seq_rh=Recurso_Humano.seq_rh
ORDER BY nom_rh ASC
Ceio que MAX resolve.