MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]retornar registros com a data mais recente

    avatar
    mcsanches
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 10/06/2012

    [Resolvido]retornar registros com a data mais recente Empty [Resolvido]retornar registros com a data mais recente

    Mensagem  mcsanches 7/4/2014, 18:57

    boa tarde srs.

    tenho uma consulta que envolve 3 tabelas

    onde tenho na primeira o nome, na segunda a situação e na terceira o posto e data

    ex:

    Nome    situação   posto    dt_atribuicao
    paulo    ativo           21   11/02/2003
    luciana  ativo           11   10/10/2001
    jose      ativo           12   01/05/2013
    jose      ativo           12   20/05/2013

    gostaria de que por exemplo o (jose) retorne apenas a data mais recente, já tentei a função Máx mas nao obtive sucesso

    SELECT DISTINCT TabPessoa.nome, TabSituacao.situacao, TabFuncao.setor, TabFuncao.posto, TabFuncao.dt_atribuicao
    FROM (TabPessoa INNER JOIN TabSituacao ON TabPessoa.codigo_pessoa = TabSituacao.pessoa) INNER JOIN TabFuncao ON TabSituacao.codigo_situacao = TabFuncao.situacao;

    alguem pode me ajudar?

    desde já agradeço
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]retornar registros com a data mais recente Empty Re: [Resolvido]retornar registros com a data mais recente

    Mensagem  Celso Roberto 8/4/2014, 01:38

    Olá boa noite
    Tente esta alteração

    SELECT TabPessoa.nome, TabSituacao.situacao, TabFuncao.setor, TabFuncao.posto,
    Last([TabFuncao].dt_atribuicao) AS UltimaDataAtribuição(pode mudar este nome)

    Veja este tópico resolvido para mim pelo Alexadre Neves

    http://maximoaccess.forumeiros.com/t17875-resolvidoconsulta-de-clientes-sem-movimentos#132860

    Caso não consiga post as db para ver melhor

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    avatar
    mcsanches
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 10/06/2012

    [Resolvido]retornar registros com a data mais recente Empty Re: [Resolvido]retornar registros com a data mais recente

    Mensagem  mcsanches 10/4/2014, 14:33

    Bom dia Celso

    o que aconteceu:

    quando agrupo pelo nome tudo ok

    SELECT Max(TabFuncao.dt_atribuicao) AS x, TabPessoa.nome
    FROM TabPessoa INNER JOIN (TabSituacao INNER JOIN TabFuncao ON TabSituacao.codigo_situacao = TabFuncao.situacao) ON TabPessoa.codigo_pessoa = TabSituacao.pessoa
    GROUP BY TabPessoa.nome;

    retorna correto

    porem tenho um problema , o posto exercidas pelas pessoas exemplo, jose exerceu o posto 12 e 31, ao tentar realizar a query para que retorne o posto da data mais recente:

    Nome situação posto dt_atribuicao
    paulo ativo 21 11/02/2003
    luciana ativo 11 10/10/2001
    jose ativo 31 01/05/2013
    jose ativo 12 20/05/2013

    utilizando o seguinte

    SELECT Max(TabFuncao.dt_atribuicao) AS x, TabPessoa.nome, TabFuncao.posto
    FROM TabPessoa INNER JOIN (TabSituacao INNER JOIN TabFuncao ON TabSituacao.codigo_situacao = TabFuncao.situacao) ON TabPessoa.codigo_pessoa = TabSituacao.pessoa
    GROUP BY TabPessoa.nome, TabFuncao.posto;

    ele não retorna a ultima data... e sim todas pois o posto esta agrupado

    ao tentar tirar o TabFuncao.posto do agrupamento, ele da erro:

    "voce tentou executar uma consulta que não inclui a expressão especificada "posto" como parte de uma função de agregação"

    parece que a função Max só funciona com o GROUP BY para todos os campos da pesquisa

    alguma sugestão?

    abraço



    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]retornar registros com a data mais recente Empty Re: [Resolvido]retornar registros com a data mais recente

    Mensagem  Celso Roberto 10/4/2014, 17:50

    Boa tarde..

    Tente  SELECT Last(TabFuncao.dt_atribuicao) AS x

    caso não de resultado post o bd para poder Te ajudar melhor

    Aguardo retorno

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    avatar
    mcsanches
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 10/06/2012

    [Resolvido]retornar registros com a data mais recente Empty Re: [Resolvido]retornar registros com a data mais recente

    Mensagem  mcsanches 11/4/2014, 14:20

    Resolvido da seguinte forma

    SELECT Max(TabFuncao.dt_atribuicao) AS Data, TabPessoa.nome AS Nome, Last(TabFuncao.setor) AS Setor, Last(TabFuncao.posto) AS Posto, Last(TabSituacao.situacao) AS Situação
    FROM TabPessoa INNER JOIN (TabSituacao INNER JOIN TabFuncao ON TabSituacao.codigo_situacao = TabFuncao.situacao) ON TabPessoa.codigo_pessoa = TabSituacao.pessoa
    GROUP BY TabPessoa.nome;

    Agradeço a todos pela ajuda

    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]retornar registros com a data mais recente Empty Re: [Resolvido]retornar registros com a data mais recente

    Mensagem  Celso Roberto 11/4/2014, 16:28

    Obridado pelo retorno
    O Forum Agradece

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Conteúdo patrocinado


    [Resolvido]retornar registros com a data mais recente Empty Re: [Resolvido]retornar registros com a data mais recente

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 19:04