Olá!
Eu tenho uma base de dados contendo esse formato:
1) Código de um projeto | 2) Nome de um projeto | 3) Nível de entrega do projeto
O nível de entrega para um mesmo código pode mudar. Ex:
Código 1 Nome A Nível 1
Código 1 Nome A Nível 2
Código 1 Nome A Nível 4
Em outra base eu procuro o número do código e quero que retorne o mais valor encontrado. Ex: quando eu procuro o código 1 eu quero que me retorne o nível de entrega 4 (pois é o maior).
Minha base é gigante então tinha que ser automático isso! Muito obrigada!!!!
Se eu entendi bem a montagem da sua planilha, você pode fazer essa pesquisa utilizando a função MÁXIMOSES.
A função máximoses possui 3 parâmetros básicos: intervalo_máximo (intervalo onde a função deve buscar o valor máximo, no caso a coluna de nível) ;intervalo_critérios (intervalo onde será validado o critério, ou seja, qual código ele deve buscar); critérios (o campo de código em que você digita qual código quer pesquisar).
Isso só funciona para números, então depende muito de como sua planilha está montada. Se precisar de mais ajuda, pode chamar!
Flávia, tudo bem?
A resposta para a sua pergunta vai depender de que tipo de persistência de dados você prefere/precisa utilizar...
Se você tiver a possibilidade de escolha, recomendo que use um banco de dados "NoSQL", ou seja, sem integridade referencial diretamente no banco de dados mas sim em um esquema de documentos em que o Nível de entrega do Projeto seja uma lista de objetos como parte do teu objeto Projeto.
Se houver a necessidade de manter a integridade referencial em um banco de dados como Mysql, SqlServer ou Oracle, a recomendação é que (caso você ainda não esteja fazendo assim) indexe ID do projeto + ID do nível em uma tabela itermediaria (NxN) e que adicione um campo nessa tabela de NxN indicando qual o ID/nível de maior valor... Perceba que desta forma você está desnormalizando as tabelas sem perder a integridade e transferindo o processamento pesado para a persistência ao invés de deixá-lo na busca... A partir de então, você irá sempre recalcular qual o maior nível quando estiver salvando um novo relacionamento ProjetoxNível e vai persistir esse novo Id de nível maior nas tuplas de relacionamento (NxN), a busca então passa a ser direta: "select distinct maxNivel from tabela_projeto_nivel projNiv where projNiv.id_projeto = XYZ join tabela_nivel nivel on projNiv.id_nivel = nivel.id_nivel"... Perceba que agora o acesso ao nivel será diretamente via ID, que é o melhor que você consegue de performance em um esquema de integridade referencial.