none
Select com Ultimo registro de cada item em cada local RRS feed

  • Pergunta

  • Tenho uma tabela que mostra todos movimentos do item, e nesta tabela tem uma coluna que é a chave primaria do local.
    Preciso tirar apenas o ultimo movimento de cada item em cada local. 
    segunda-feira, 28 de janeiro de 2019 12:33

Respostas

  • Boa tarde,

    William, teríamos que ver mais detalhes mas pelo que entendi acredito que você pode conseguir o resultado esperado utilizando a função de Row_Number.

    Segue um exemplo para você tentar adaptar a sua tabela:

    with CTE_RN as
    (
        select 
            *,
            row_number() over(partition by IdItem, IdLocal order by DataMovimento desc) as RN
        from Tabela
    )
    
    select * from CTE_RN
    where RN = 1

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta William_droops segunda-feira, 28 de janeiro de 2019 16:30
    segunda-feira, 28 de janeiro de 2019 15:46
  • Como o gapimex informou.

    select
    	ID_MOVIMENTACAO  
    	,ID_PRODUTO  
    	,ID_LOCAL
    	,DATA_MOVIMENTACAO
    from select ROW_NUMBER() over(partition by id_produto,id_local order by data_movimentacao desc) d,* 
    from movimentacoes) as  base


    Fabiano Carvalho


    segunda-feira, 28 de janeiro de 2019 15:50

Todas as Respostas

  • Como esta a estrutura de suas tabelas?

    Fabiano Carvalho

    segunda-feira, 28 de janeiro de 2019 15:27
  • Boa tarde,

    William, teríamos que ver mais detalhes mas pelo que entendi acredito que você pode conseguir o resultado esperado utilizando a função de Row_Number.

    Segue um exemplo para você tentar adaptar a sua tabela:

    with CTE_RN as
    (
        select 
            *,
            row_number() over(partition by IdItem, IdLocal order by DataMovimento desc) as RN
        from Tabela
    )
    
    select * from CTE_RN
    where RN = 1

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta William_droops segunda-feira, 28 de janeiro de 2019 16:30
    segunda-feira, 28 de janeiro de 2019 15:46
  • São 3 Tabelas

    Tabela de produtos 

     ID_PRODUTO | PRODUTO 

    Tabela de locais 

    ID_LOCAL | LOCAL 

    Tabela de Movimentações

    ID_MOVIMENTACAO  | ID_PRODUTO  | ID_LOCAL | DATA_MOVIMENTACAO. 


     Preciso trazer a ultima( mais recente) movimentação de todos os itens por local. 
     

    segunda-feira, 28 de janeiro de 2019 15:46
  • Como o gapimex informou.

    select
    	ID_MOVIMENTACAO  
    	,ID_PRODUTO  
    	,ID_LOCAL
    	,DATA_MOVIMENTACAO
    from select ROW_NUMBER() over(partition by id_produto,id_local order by data_movimentacao desc) d,* 
    from movimentacoes) as  base


    Fabiano Carvalho


    segunda-feira, 28 de janeiro de 2019 15:50
  • Obrigado, as 2 respostas deram certo. 
    segunda-feira, 28 de janeiro de 2019 16:30