Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida Com Query


xandesantos

Pergunta

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

  • 0

Veja se isto funciona:

Select pesquisador.cod_pesq, pesquisador.nme_pesq, pesquisador.endereco_pesq, formacao.nme_form, formacao.niv_form from
pesquisador, formacao 
where
pesquisador.cod_pesq = pesq_form.cod_pesq
and 
pesq_form.cod_form = formacao.cod_form
and
formacao.niv_form=(select MAX(niv_form) from formacao where pesq_form.cod_form = formacao.cod_form) order by nme_pesq, niv_form

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...