HelioSabioni Postado Agosto 21, 2012 Denunciar Share Postado Agosto 21, 2012 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.9332__________ 2__________ 2012-08-21 10:17:36.4602__________ 3__________ 2012-08-21 10:17:38.9972__________ 4__________ 2012-08-21 10:17:40.9172__________ 5__________ 2012-08-21 10:17:42.2302__________ 6__________ 2012-08-21 10:17:43.3932__________ 7__________ 2012-08-21 10:17:44.7032__________ 8__________ 2012-08-21 10:17:46.2102__________ 9__________ 2012-08-21 10:17:47.493Tabela [CONTAS].[dbo].[t2] :[t2.valor1]_ [t2.valor2]_____ [t2.datetime]1__________ 10__________ 2012-08-21 10:18:43.5072__________ 20__________ 2012-08-21 10:18:47.1873__________ 30__________ 2012-08-21 10:18:50.4934__________ 40__________ 2012-08-21 10:18:53.5875__________ 50__________ 2012-08-21 10:18:58.0306__________ 60__________ 2012-08-21 10:19:01.2877__________ 70__________ 2012-08-21 10:19:05.2978__________ 80__________ 2012-08-21 10:19:08.8379__________ 90__________ 2012-08-21 10:19:13.417Gostaria 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] descGORESULTADO:[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.4172________ 9______ 2012-08-21 10:17:47.493_____ 8______ 80___ 2012-08-21 10:19:08.8372________ 9______ 2012-08-21 10:17:47.493_____ 7______ 70___ 2012-08-21 10:19:05.2972________ 9______ 2012-08-21 10:17:47.493_____ 6______ 60___ 2012-08-21 10:19:01.2872________ 9______ 2012-08-21 10:17:47.493_____ 5______ 50___ 2012-08-21 10:18:58.030Eu 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Agosto 21, 2012 Denunciar Share Postado Agosto 21, 2012 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HelioSabioni Postado Agosto 21, 2012 Autor Denunciar Share Postado Agosto 21, 2012 (editado) 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 Agosto 21, 2012 por HelioSabioni Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Agosto 21, 2012 Denunciar Share Postado Agosto 21, 2012 Ok, entendido.... Como quer os ultimos 5 registros, poderá fazer um top 5, fazendo uma ordenação decrescente por data.order by data desc Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HelioSabioni Postado Agosto 21, 2012 Autor Denunciar Share Postado Agosto 21, 2012 Ok, entendido.... Como quer os ultimos 5 registros, poderá fazer um top 5, fazendo uma ordenação decrescente por data.order by data descOlha 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Agosto 21, 2012 Denunciar Share Postado Agosto 21, 2012 Sim, mas ai terá que colocar a clausula WHERE. Tente fazer com substring.... Referenciando as duas tabelas somente como no exmeplo, sem o where, não terá jeito. O sql exponencializa o resultado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
HelioSabioni
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
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.