Ir ao conteúdo
  • Cadastre-se

Select do ultimo e penultimo registro por ID em uma tabela


Posts recomendados

Olá Pessoal

 

Estou com o seguinte dilema, preciso de selecionar os dois últimos registros de um ID, por exemplo:

Existe uma tabela com 5 ID diferente e preciso dos últimos dois lançamentos destes 5 ID , uso SQL Server 2008 portanto o LIMIT não funcionará.

 

Já pesquisei e todos os tópicos nada encontrei para este problema em especifico pois estou querendo os dois últimos registros de cada ID e não da tabela, existe algum comando especifico para isso no SQL SERVER? Desde já agradeço!

Link para o comentário
Compartilhar em outros sites

B

41 minutos atrás, bngomes disse:

mande a definição dessa tabela.. esse ID que voce quer é FK de outra tabela? qual o PK dessa tabela?

 

O LIMIT 2 não funciona no SQL SERVER? voce pode tentar com o LIMIT 2 e colacar a clausula order by (o campo que voce quer) DESC pra listar a tabela de tras pra frente

 

 

SIm, o ID é uma FK de outra tabela, e está vinculadas com JOIN pois preciso de uma outra informação que não vem ao caso. Quanto ao LIMIT aparentemente não existe no MS SQL Server, pesquisei e parece ser isso mesmo.

 

SELECT DISTINCT
       a.PartoID
      ,a.Numero as 'N° Parto'
      ,a.MatrizID
      ,a.Data
      ,a.ReprodutorID
      ,a.PartosTipoID
      ,c.Numero
  FROM [Partos] a
  JOIN [Matrizes] b
  ON b.MatrizID = a.MatrizID
  JOIN [Animais] c
  ON c.AnimalID = b.MatrizID

 

 

Link para o comentário
Compartilhar em outros sites

8 minutos atrás, bngomes disse:

Andei pesquisando aqui.. voce pode usar o TOP(numero de linhas) com um order by desc

 

no seu caso seria select top(2) * from xxx order by yyy desc

 

 

Sim, já tentei o TOP com ORDER BY DESC mas ele busca os dois últimos lançamentos da TABELA e não os dois últimos lançamentos do ID, eu poderia fazer um WHERE buscando ID por ID mas seria muito inviável visto que são milhares,o que eu preciso mesmo é que busque os dois últimos de cada um dos ID. 

Link para o comentário
Compartilhar em outros sites

31 minutos atrás, bngomes disse:

Então.. eu acho que direto como você quer não tem.. mas de repente com alguma programação você consegue.. 

 

 

Sim, possivelmente terá de ser, vou esperar mais um pouco e ver se alguém consegue alguma ideia, talvez alguma procedure.

 

Muito obrigado pela ajuda bngomes

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...