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

Problemas SELECT em 2 tabelas diferentes (repeticoes)


HelioSabioni

Pergunta

Olá a todos!!!

Estou com um problema ao selecionar dados de duas tabelas diferentes.

As tabelas são:

Tabela [CONTAS].[dbo].[t1]:

[t1.valor1]_ [t1.valor2]_____ [t1.datetime]

2__________ 1__________ 2012-08-21 10:17:28.933

2__________ 2__________ 2012-08-21 10:17:36.460

2__________ 3__________ 2012-08-21 10:17:38.997

2__________ 4__________ 2012-08-21 10:17:40.917

2__________ 5__________ 2012-08-21 10:17:42.230

2__________ 6__________ 2012-08-21 10:17:43.393

2__________ 7__________ 2012-08-21 10:17:44.703

2__________ 8__________ 2012-08-21 10:17:46.210

2__________ 9__________ 2012-08-21 10:17:47.493

Tabela [CONTAS].[dbo].[t2] :

[t2.valor1]_ [t2.valor2]_____ [t2.datetime]

1__________ 10__________ 2012-08-21 10:18:43.507

2__________ 20__________ 2012-08-21 10:18:47.187

3__________ 30__________ 2012-08-21 10:18:50.493

4__________ 40__________ 2012-08-21 10:18:53.587

5__________ 50__________ 2012-08-21 10:18:58.030

6__________ 60__________ 2012-08-21 10:19:01.287

7__________ 70__________ 2012-08-21 10:19:05.297

8__________ 80__________ 2012-08-21 10:19:08.837

9__________ 90__________ 2012-08-21 10:19:13.417

Gostaria de sempre selecionar as 5 ultimas linhas das duas tabelas.

Estou utilizando a query abaixo, porem os ultimos resultados da tabelas 1 estao repetidos (2 e o 9):

QUERY:

SELECT top 5 *

FROM [CONTAS].[dbo].[t1],[CONTAS].[dbo].[t2]

order by [t1.datetime] desc,[t2.datetime] desc

GO

RESULTADO:

[t1.valor1]___[t1.valor2]___ [t1.datetime]____ [t2.valor1]_ [t2.valor2]_ [t2.datetime]

2________ 9______ 2012-08-21 10:17:47.493_____ 9______ 90___ 2012-08-21 10:19:13.417

2________ 9______ 2012-08-21 10:17:47.493_____ 8______ 80___ 2012-08-21 10:19:08.837

2________ 9______ 2012-08-21 10:17:47.493_____ 7______ 70___ 2012-08-21 10:19:05.297

2________ 9______ 2012-08-21 10:17:47.493_____ 6______ 60___ 2012-08-21 10:19:01.287

2________ 9______ 2012-08-21 10:17:47.493_____ 5______ 50___ 2012-08-21 10:18:58.030

Eu não consigo tirar essas repeticoes do 2 e 9 da tabela 1...help me!!

Se alguém puder me ajudar ficarei muito grato!!

Agradeco a atencao desde já...

Obrigado a todos!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Boa tarde Helio,

O sql está exponenciando o resultado porque está faltando a cláusula WHERE. Como está referenciado duas tabelas, terá que identificar qual o relacionamento q existe entre elas.

Sim, porem essa minha query ficara estatica dentro de um software aonde não poderei ficar modificando ela. Preciso sempre dos ultimos valores adicionados.

E no caso real as tabelas so possuem o campo de DATETIME como identificao, a tabela e gerado por outro software.

As tabelas não possuem nem uma relacao entre elas...e os dados gerados não de todos os tipos, reais, int, esta muito dificil resolver isso.

A coisa e preta!! ;(

Obrigado

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

  • 0
Ok, entendido....

Como quer os ultimos 5 registros, poderá fazer um top 5, fazendo uma ordenação decrescente por data.

order by data desc

Olha meu exemplo lá em cima isso foi feito.

O que acontece é que o select faz um produto cartesiano entre as duas tabelas gerando aqueles valores repetidos mostrado no exemplo.

Obrigado

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
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...