Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
marcelo01286

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

Question

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

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  



  • Forum Statistics

    • Total Topics
      148386
    • Total Posts
      643772
×
×
  • Create New...