operador UNION com subquery Where.

08/10/2013

0

Boa tarde,

Estou tentando efetuar uma pesquisa unindo duas tabelas. Entretanto eu preciso que o usuário informe a data e o endereço (código de uma unidade) e estou usando a seguinte instrução que não está funcionando poi não filtra pelo endereço.

SELECT GPRS.E3TimeStamp, GPRS.ENDERECO, GPRS.RECALQ1
FROM GPRS
UNION
SELECT Pedras_Preciosas.E3TimeStamp, Pedras_Preciosas.ENDERECO, Pedras_Preciosas.RECALQ1
FROM Pedras_Preciosas

WHERE (( E3TimeStamp >= #<%DataInicial%># AND E3TimeStamp <= #<%DataFinal%># ) AND ( ENDERECO = <%ENDERECO%> ))

ORDER BY E3TimeStamp ASC



Vlw,
Samuel Silva
Samuel Silva

Samuel Silva

Responder

Posts

10/10/2013

Mariana Carvalho

nesse codigo tem todos os campos?
Responder

10/10/2013

Jefferson Santos

Porque não utilizar:

SELECT G.GPRS.E3TimeStamp, G.GPRS.ENDERECO, G.GPRS.RECALQ1, P.Pedras_Preciosas.E3TimeStamp, P.Pedras_Preciosas.ENDERECO, P.Pedras_Preciosas.RECALQ1
FROM GPRS G
INNER JOIN PEDRAS_PRECIOSAS P
ON
LIGAÇÃOTB1 = LIGAÇAOTB2
WHERE (( E3TimeStamp >= #<%DataInicial%>#
AND E3TimeStamp <= #<%DataFinal%># )
AND ( ENDERECO = <%ENDERECO%> ))
ORDER BY E3TimeStamp ASC
Responder

11/10/2013

Jair N.

Bom Dia, eu acho que seria "melhor" por subconsulta agrupada.


SELECT sq_union.*
FROM (SELECT GPRS.E3TimeStamp
, GPRS.ENDERECO
, GPRS.RECALQ1
FROM GPRS
UNION
SELECT Pedras_Preciosas.E3TimeStamp
, Pedras_Preciosas.ENDERECO
, Pedras_Preciosas.RECALQ1
FROM Pedras_Preciosas
) sq_union
WHERE (sq_union.E3TimeStamp >= #<%DataInicial%>#)
AND (sq_union.E3TimeStamp <= #<%DataFinal%># )
AND (sq_union.ENDERECO = <%ENDERECO%> )
ORDER BY sq_union.E3TimeStamp ASC;


Boa tarde,


Estou tentando efetuar uma pesquisa unindo duas tabelas. Entretanto eu preciso que o usuário informe a data e o endereço (código de uma unidade) e estou usando a seguinte instrução que não está funcionando poi não filtra pelo endereço.

SELECT GPRS.E3TimeStamp, GPRS.ENDERECO, GPRS.RECALQ1
FROM GPRS
UNION
SELECT Pedras_Preciosas.E3TimeStamp, Pedras_Preciosas.ENDERECO, Pedras_Preciosas.RECALQ1
FROM Pedras_Preciosas

WHERE (( E3TimeStamp >= #<%DataInicial%># AND E3TimeStamp <= #<%DataFinal%># ) AND ( ENDERECO = <%ENDERECO%> ))

ORDER BY E3TimeStamp ASC



Vlw,
Samuel Silva
Responder

11/10/2013

Alex Lekao

Ola Samuel, bom dia!!!

Tanto a sugestao do Jeferson quanto a sugestao do Jair, deverao atender a sua necessidade.

A sugestao do Jair, eh legal que vc consegue fazer algumas outras coisas que na anterior nao daria, e ate te aconselho a se acostumar em usa-la pq em muito casos ter ajudara muito.

e e Outra opcao do Jeferson tambem eh muito interessante, so lembrando em consideracao no uso dos joins para apresentacao dos joins, por exemplo se vai usar inner ou left, essas coisas, e normalmente quando se utiliza joins gera o "plano cartesiano" e com isso pode demorar a consulta.

Mas estara bem atendido em qqr umas das duas que escolher usar.

Abraco.

Alex - Lekao
Responder

11/10/2013

Samuel Silva

Pessoal Muito obrigado pela ajuda!
Abração
Responder

16/10/2013

Jefferson Santos

Alex,
Acredito que este artigo pode mudar sua ideia quanto ao uso de Join
Ele ajuda a desvendar alguns mitos do uso de Join.

[url]http://gustavomaiaaguiar.wordpress.com/2010/09/06/mitos-do-sql-server-%E2%80%93-fazer-juncoes-via-inner-join-e-mais-rapido-que-na-clausula-where-parte-i/[/url]
Responder

16/10/2013

Alex Lekao

Oi Jefferson, boa tarde!!!

Obrigado pelo artigo.

Embora ja o conheca, mas dei uma olhada novamente. rsrsrsr

eu particularmente so faco codigos usando joins, nao tenho muito problema com ele, ate prefiro e tenho a impressao que o SQL trate melhor as consultas usando os joins que agrupando as tabelas na clausula from.

O blog do Gustavo faz parte dos meus favoritos, sempre utilizo dicas dada por ele, o cara eh muito bom.

A minha sugestao de cuidado era para que ele obtivesse o melhor resultado e analisasse bem a consulta e utilizacao do join, pq dependendo do que fizer podera apresentar dados nao requeridos, etc.

Normalmente eu utilizo essa figura para ajudar o pessoal a entender os joins, peguei num site de alguem que nao me lembro onde nem quem... rssr
https://skydrive.live.com/?cid=23dbeab240eb869a&id=23DBEAB240EB869A%211510&sff=1

Bom eh isso ai...

outra vez muito obrigado.

Abraco.

Alex - Lekao
Responder

16/10/2013

Jefferson Santos

Obrigado pela imagem.
Também a utilizo no meu ambiente de trabalho e no dia a dia.
Depois de muita pratica fica no sangue.
Responder

16/10/2013

Alex Lekao

kkkkk....

acho que no meu ainda nao entrou totalmente... rsrsr

nao consigo me dedicar tanto... meu trabalho toma muito tempo... rsrsr
Responder

16/10/2013

Jefferson Santos

Pow eu trabalho direto com banco de dados e tenho o Devmedia como estudo, tento conselhar os dois.

Responder

16/10/2013

Alex Lekao

no meu caso o trabalho com o banco vem praticamente em terceiro, quarto, .... lugar... rsrsr

eu uso muito aqui para aprendizado, e tento ajudar o pessoal naquilo que sei e sempre de olho no que estao postando para aprender mais... rsrsr

e uma forma de aprender mais e ajudar... rsrsr
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar