Array
(
)

operador UNION com subquery Where.

Samuel Silva
   - 08 out 2013

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

Mariana Carvalho
   - 10 out 2013

nesse codigo tem todos os campos?

Jefferson Santos
   - 10 out 2013

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

Jair A.n.
   - 11 out 2013

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;

Citação:
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

Alex Lekao
   - 11 out 2013

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

Samuel Silva
   - 11 out 2013

Pessoal Muito obrigado pela ajuda!
Abração

Jefferson Santos
   - 16 out 2013

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

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/

Alex Lekao
   - 16 out 2013

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

Jefferson Santos
   - 16 out 2013

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

Alex Lekao
   - 16 out 2013

kkkkk....

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

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

Jefferson Santos
   - 16 out 2013

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

Alex Lekao
   - 16 out 2013

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