Ir para conteúdo

Arquivado

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

Vinicius Silva_166087

[Resolvido] Seleção de maior graduação

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)
ORDER BY nom_rh ASC 

 

Ceio que MAX resolve.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)
ORDER BY nom_rh ASC 

 

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 ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)
ORDER BY nom_rh ASC 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)
ORDER BY nom_rh ASC 

Perfeito Motta. Obrigado pela ajuda. Qdo tiver mais dúvidas lhe solicitarei novamente.

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.