Usuário com melhor resposta
Realizar consulta em 2 tabelas conforme: (SQL 2008 R2 )

Pergunta
-
SELECT DISTINCT TB_COMBIO_HISTORICO.E3TimeStamp, TB_COMBIO_HISTORICO.Variavel01, TB_COMBIO_HISTORICO.Variavel02, TB_COMBIO_HISTORICO_10s.E3TimeStamp, TB_COMBIO_HISTORICO_10s.N1, TB_COMBIO_HISTORICO_10s.N2 FROM TB_COMBIO_HISTORICO,TB_COMBIO_HISTORICO_10s WHERE TB_COMBIO_HISTORICO.E3TimeStamp BETWEEN #<%spDataInicial%># AND #<%spDataFinal%># AND TB_COMBIO_HISTORICO_10s.E3TimeStamp BETWEEN #<%spDataInicial%># AND #<%spDataFinal%># AND TB_COMBIO_HISTORICO.E3TimeStamp !> TB_COMBIO_HISTORICO_10s.E3TimeStamp ORDER BY TB_COMBIO_HISTORICO_10s.E3TimeStamp ASC
Tenho duas tabelas em meu banco SQL 2008 R2
O TB_COMBIO_HISTORICO.E3TimeStamp tem valores armazenados a cada 1 segundo e o TB_COMBIO_HISTORICO_10s tem valores a cada 10 segundos.
Se eu mandar executar a query, ira me retornar mais ou menos isto:E3TimeStamp | Variavel01 | Variavel02 | E3TimeStamp | N1 | N222/09/2014 16:15:33 | 95 | 52 | 22/09/2014 16:15:32 | 50 | 2922/09/2014 16:15:34 | 55 | 52 | 22/09/2014 16:15:42 | 55 | 2922/09/2014 16:15:35 | 87 | 52 | 22/09/2014 16:15:52 | 52 | 2922/09/2014 16:15:36 | 77 | 52 | 22/09/2014 16:15:02 | 54 | 2922/09/2014 16:15:37 | 54 | 52 | 22/09/2014 16:15:12 | 52 | 2922/09/2014 16:15:38 | 95 | 52 | 22/09/2014 16:15:22 | 50 | 2922/09/2014 16:15:39 | 95 | 52 | 22/09/2014 16:15:32 | 21 | 29
Mas eu precisava que ficasse da seguinte forma:
E3TimeStamp | Variavel01 | Variavel02 | E3TimeStamp | N1 | N222/09/2014 16:15:31 | 95 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:32 | 25 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:33 | 32 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:34 | 42 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:35 | 10 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:36| 11 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:37 | 22 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:38 | 42 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:39 | 66 | 52 | 22/09/2014 16:15:31 | 50 | 2922/09/2014 16:15:40 | 02 | 52 | 22/09/2014 16:15:31 | 21 | 3322/09/2014 16:15:41 | 40 | 52 | 22/09/2014 16:15:41 | 55 | 77
22/09/2014 16:15:42 | 40 | 52 | 22/09/2014 16:15:41 | 52 | 77
22/09/2014 16:15:43 | 40 | 52 | 22/09/2014 16:15:41 | 51 | 77
22/09/2014 16:15:44 | 40 | 52 | 22/09/2014 16:15:41 | 80 | 77
22/09/2014 16:15:45 | 40 | 52 | 22/09/2014 16:15:41 | 88| 77E assim por diante.
Ou seja, a quarta coluna é a 10 segundos os valores, e eu queria que a mesma repetisse os valores para acompanhar a primeira. Igual ao exemplo. É possível? Pois não estou lembrado da forma que posso estar fazendo isto através de edição direta do SQL.
- Editado Agnaldo JR terça-feira, 23 de setembro de 2014 12:01
Respostas
-
Bom dia,
Experimente dessa forma:
SELECT h.E3TimeStamp, h.Variavel01, h.Variavel02, c.E3TimeStamp, c.N1, c.N2 FROM TB_COMBIO_HISTORICO as h CROSS APPLY ( SELECT TOP(1) h10s.E3TimeStamp, h10s.N1, h10s.N2 FROM TB_COMBIO_HISTORICO_10s as h10s WHERE h10s.E3TimeStamp BETWEEN #<%spDataInicial%># AND #<%spDataFinal%># AND h10s.E3TimeStamp <= h.E3TimeStamp ORDER BY h10s.E3TimeStamp ) as c WHERE h.E3TimeStamp BETWEEN #<%spDataInicial%># AND #<%spDataFinal%># ORDER BY c.E3TimeStamp
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 10:55
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 17:37
-
Deleted
- Sugerido como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 10:55
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 17:37
-
Agnaldo,
Esta quarta coluna é do tipo TimeStamp!!!! Você esta realizando alguma conversão para apresentar estes valores?
Na query não identifiquei nada em relação a conversão.
Agora você deseja que este valor seja fixo em relação a coluna que contém os valores de N1? E ai se mudar o valor de N1 deve-se manter o mesmo valor até a próxima mudança?
Se for isso, já pensou em trabalhar com tabelas temporárias ou até mesmo o uso de CTE?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
- Editado Junior Galvão - MVPMVP terça-feira, 23 de setembro de 2014 18:01
- Sugerido como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 10:55
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 17:37
Todas as Respostas
-
Bom dia,
Experimente dessa forma:
SELECT h.E3TimeStamp, h.Variavel01, h.Variavel02, c.E3TimeStamp, c.N1, c.N2 FROM TB_COMBIO_HISTORICO as h CROSS APPLY ( SELECT TOP(1) h10s.E3TimeStamp, h10s.N1, h10s.N2 FROM TB_COMBIO_HISTORICO_10s as h10s WHERE h10s.E3TimeStamp BETWEEN #<%spDataInicial%># AND #<%spDataFinal%># AND h10s.E3TimeStamp <= h.E3TimeStamp ORDER BY h10s.E3TimeStamp ) as c WHERE h.E3TimeStamp BETWEEN #<%spDataInicial%># AND #<%spDataFinal%># ORDER BY c.E3TimeStamp
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 10:55
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 17:37
-
Deleted
- Sugerido como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 10:55
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 17:37
-
Agnaldo,
Esta quarta coluna é do tipo TimeStamp!!!! Você esta realizando alguma conversão para apresentar estes valores?
Na query não identifiquei nada em relação a conversão.
Agora você deseja que este valor seja fixo em relação a coluna que contém os valores de N1? E ai se mudar o valor de N1 deve-se manter o mesmo valor até a próxima mudança?
Se for isso, já pensou em trabalhar com tabelas temporárias ou até mesmo o uso de CTE?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
- Editado Junior Galvão - MVPMVP terça-feira, 23 de setembro de 2014 18:01
- Sugerido como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 10:55
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 24 de setembro de 2014 17:37