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

(Resolvido) Selecionar os 15 ultimos Registros de uma tabela


Stewie

Pergunta

Olá Pessoal,

Estou com o seguinte problema, preciso fazer um select no ultimos 15 registros de uma tabela,

a minha dúvida é existe algum comando que funcione ao contrário do comando top no SQL Server ????

*****Detalhe

os registros da tabela se repetem.....

porque com o top eu pego os que estão no começo da tabela certo ???

se tiver um que funcione da mesma forma porem que eu pegue os do final ficaria facil...... :)

e se caso exista, esse comando funciona no access tb ????? pois irei precisar implementar a mesma instrução ou algo que faça a mesma operação no access tb......

Estou usando SQL SERVER 2008.....

desde já muito obrigado a todos, e desculpem se essa pergunta já existir porem procurei e não achei nada a respeito....

[]´s

Editado por Stewie
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Nossa cara eu não tenho um campo de data de cadastro......

e você me assusta dizendo que não há nada a fazer :blink: kkkkkkk

e agora :wacko:

fercosmig estava pensando, teria como fazer uma busca passando os numeros das linhas como parametro ????

vlew pela dica e por tentar ajudar

[]´s

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Stewie,

Então você quer pegar os ultimos 15 registros, ok? A tabela possui alguma coluna clusterizada? Estou perguntando pois, se a tabela não for clusterizada, os 15 registros do primeiro resultado não necessariamente será igual às proximas vezes que o mesmo script rodar.

O que pode ser feito é criar uma coluna identity. Isso faz com que a coluna identity se auto-incremente toda vez que algum registro for inserido. Aí você pode dar um select com top 15 em ordem decrescente. Sempre pegará os ultimos 15 registros.

Ao criar a coluna identity, o sql automaticamente irá colocar a numeração pra você na sua tabela.

Espero que esta opção ajude.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Fulvio,

vlew mesmo, era isso mesmo....

criei uma coluna id auto increment e fiz o select top......

e deu certo porem agora, estou com outro problema, esses registros que retornam, precisava que eles retornassem agrupados e ordenados em ordem crescente.......

se tiver alguma ideia por favor me diga

desde já muito obrigado pela ajuda

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Stewie,

Neste caso terá q pegar os 15 registros selecionados, colocar em uma temporária e manipulá-los novamente.

Se fizer um group by, o sql fará o agrupamento de todos os dados da tabela, depois disponibilizará as 15 primeiras linhas de retorno.

Link para o comentário
Compartilhar em outros sites

  • 0

Criei duas tabelas temporárias. A primeira é como se for a sua tabela física, onde pegará os 15 ultimos registros.

Criei temporária em instância. Caso queira criar em tempo de execução, terá que utilizar o @.

Ex.: DECLARE @Tabela TABLE (Valor INT)

-- Sua tabela física.
CREATE TABLE #Temporaria (Valor INT)

-- Inserção dos dados.
INSERT INTO #Temporaria values(1)
INSERT INTO #Temporaria values(2)
INSERT INTO #Temporaria values(3)
INSERT INTO #Temporaria values(4)
INSERT INTO #Temporaria values(5)

-- A criação de uma tabela temporária.
CREATE TABLE #Tabela (Valor INT)

-- Inserindo 3 registros. No seu caso, serão os 15 ultimos.
INSERT INTO #Tabela
SELECT TOP 3 * FROM #Temporaria

-- Ai você poderá manipular os dados na tabela temporária.
SELECT * FROM #Tabela

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Fulvio,

Muito obrigado mesmo, era isso que eu precisava....

não sabia que dava p/ inserir dados dessa maneira

INSERT INTO #Tabela

SELECT TOP 3 * FROM #Temporaria

super legal, e tb adorei o esquema de criar a tabela "virtual".....

tb é novo p/ mim

enfim, muito obrigado mesmo

grande abraço.

Editado por Stewie
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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...