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

Como retornar a maior data em consulta sem repetição de chaves


marcelo01286

Pergunta

Olá!

Tenho duas tabelas uma de Funcionáriose outra de Treinamento.
Minha chave primária na tabela Funcionários é o CPF e na tabela de Treinamento é o CPF e TIPO de treinamento.
Um Funcionário pode realizar vários TIPOS treinamento, mas não pode realizar o mesmo por isso criei uma chave estrangeira na tabela Treinamento.

Estou tentando fazer uma consulta para retornar os registros da tabela treinamento que possui a maior data de conclusão por CPF. Para tanto, se eu fizer o seguinte no ACCESS em SQL:

SELECT [Tb Treinamento].[Nf Func], Max([Tb Treinamento].[Dt Conclusao]) AS [MaxDeDt Conclusao]

FROM [Tb Treinamento]
GROUP BY [Tb Treinamento].[Nf Func];

Deste modo consegui visualizar o número total correto de CPFs sem repetições de outros TIPOS de treinamento cuja a data é a maior.

Porém, a minha consulta necessita de outras informações e se tento adicionar por exemplo, Data de envio ou o TIPO da tabela TREINAMENTO ele não me mostra mais a maior data. Ele simplesmente me mostra todos os registros correspondentes com o relacionamento da chave primária de ambas as tabelas.

Segue abaixo como estou tentando:

SELECT [Tb Treinamento].[Nf Func], [Tb Treinamento].[Dt Envio], Max([Tb Treinamento].[Dt Conclusao]) AS [MaxDeDt Conclusao], [Tb Treinamento].[status trn], [Tb Treinamento].Certificado

FROM [Tb Treinamento]
GROUP BY [Tb Treinamento].[Nf Func], [Tb Treinamento].[Dt Envio], [Tb Treinamento].[status trn], [Tb Treinamento].Certificado;

Poderiam me ajudar? Não sei o que estou fazendo de errado. -_-

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

O que você pode fazer é criar a consulta para pegar a maior data separada, e então usar os resultados dessa consulta na consulta que irá gerar a view final, dessa forma a cardinalidade não irá trazer esse tanto de registro.

Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

O que você pode fazer é criar a consulta para pegar a maior data separada, e então usar os resultados dessa consulta na consulta que irá gerar a view final, dessa forma a cardinalidade não irá trazer esse tanto de registro.

Oi tudo bem?

Então, o problema é que só necessito que as duas chaves CPF e TIPO (tipo de treinamento) também aparece para que possa então fazer uma outra consulta com os dados que necessito. Se coloco a chave primária TIPO ele simplesmente me mostra todos os dados correspondentes ao CPF acho que.

Link para o comentário
Compartilhar em outros sites

  • 0

O erro de cardinalidade na view gerada direto entre as duas consultas está dando este retorno de diversas linhas de registro, agora parta do principio o seguinte, a sub consulta será feita de modo a filtrar somente a ultima data de cada curso. Se puder postar essa parte do BD tento montar a ideia e postar de volta.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...