Jump to content
Fórum Script Brasil
  • 0

Problemas SELECT em 2 tabelas diferentes (repeticoes)


HelioSabioni
 Share

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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

Edited by HelioSabioni
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...