Tenho 3 tabelas: Pesquisador (cod_pesq, nme_pesq, endereco_pesq), Pesq_form(cod_pesq, cod_form, cod_form_pesq), Formacao(cod_form, nme_form, niv_form), sendo que pesq_form é a tabela de relacionamento entre pesquisador e formacao.
Estou utilizando a seguinte query:
Select pesquisador.cod_pesq, nme_pesq, endereco_pesq, nme_form, niv_form from
pesquisador, formacao
where
pesquisador.cod_pesq = pesq_form.cod_pesq
and
pesq_form.cod_form = formacao.cod_form
order by nme_pesq, niv_form
Desta forma, os dados retornam mais ou menos assim:
cod_pesq nme_pesq endereco_pesq nme_form niv_form
1696 Zezinho Rua 1, nº 8 Bacharelado 15
736 Luizinho Rua 3, nº 15 Bacharelado 15
6973 Donald Rua 8, nº 10 Mestrado 25
6973 Donald Rua 8, nº 10 Doutorado 30
6973 Donald Rua 8, nº 10 Pós-Doutorado 40
458 Pateta Rua 5, nº 3 2º grau 10
Ou seja, como Donald possui 3 formações cadastradas, o nome dele aparece 3 vezes na lista (uma para cada formação).
Minha intenção, é que esta query retorne os dados solicitados de cada pesquisador, mas caso este pesquisador tenha mais de uma formação cadastrada (como é o caso de Donald), deverá retornar apenas a maior formação deste pesquisador.
Portanto, a query deveria retornar os dados assim:
cod_pesq nme_pesq endereco_pesq nme_form niv_form
1696 Zezinho Rua 1, nº 8 Bacharelado 15
736 Luizinho Rua 3, nº 15 Bacharelado 15
6973 Donald Rua 8, nº 10 Pós-Doutorado 40
458 Pateta Rua 5, nº 3 2º grau 10
Alguém teria alguma solução? Tenho que selecionar a maior formação de cada um dos pesquisadores, mas não estou conseguindo fazer isto.
Pergunta
xandesantos
Tenho 3 tabelas: Pesquisador (cod_pesq, nme_pesq, endereco_pesq), Pesq_form(cod_pesq, cod_form, cod_form_pesq), Formacao(cod_form, nme_form, niv_form), sendo que pesq_form é a tabela de relacionamento entre pesquisador e formacao.
Estou utilizando a seguinte query:
Select pesquisador.cod_pesq, nme_pesq, endereco_pesq, nme_form, niv_form from
pesquisador, formacao
where
pesquisador.cod_pesq = pesq_form.cod_pesq
and
pesq_form.cod_form = formacao.cod_form
order by nme_pesq, niv_form
Desta forma, os dados retornam mais ou menos assim:
cod_pesq nme_pesq endereco_pesq nme_form niv_form
1696 Zezinho Rua 1, nº 8 Bacharelado 15
736 Luizinho Rua 3, nº 15 Bacharelado 15
6973 Donald Rua 8, nº 10 Mestrado 25
6973 Donald Rua 8, nº 10 Doutorado 30
6973 Donald Rua 8, nº 10 Pós-Doutorado 40
458 Pateta Rua 5, nº 3 2º grau 10
Ou seja, como Donald possui 3 formações cadastradas, o nome dele aparece 3 vezes na lista (uma para cada formação).
Minha intenção, é que esta query retorne os dados solicitados de cada pesquisador, mas caso este pesquisador tenha mais de uma formação cadastrada (como é o caso de Donald), deverá retornar apenas a maior formação deste pesquisador.
Portanto, a query deveria retornar os dados assim:
cod_pesq nme_pesq endereco_pesq nme_form niv_form
1696 Zezinho Rua 1, nº 8 Bacharelado 15
736 Luizinho Rua 3, nº 15 Bacharelado 15
6973 Donald Rua 8, nº 10 Pós-Doutorado 40
458 Pateta Rua 5, nº 3 2º grau 10
Alguém teria alguma solução? Tenho que selecionar a maior formação de cada um dos pesquisadores, mas não estou conseguindo fazer isto.
Agradeceria qualquer contribuição.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados