[firebase-br] Montar SQL

Jony Ridel jonyridel em aol.com
Sex Maio 6 15:51:48 -03 2005


Oi Sergio,

Para vc juntar os dados das três tabelas vc já vai ter que fazer um 
Select com Union das três que ter retornara os valores delas com um 
distinct, acho q vc até poderia em cada select dos union's fazer um 
subselect para trazer o maior valor referente ao campo1 entre as tabelas 
restantes usando o Case. Agora isso seria mas custoso ao Banco pq vc 
estaria fazendo SubQueryes em cada um dos Selects das três tabelas. Por 
isso acho melhor fazer a view e depois com um Select só trazer através 
do Group By o maior valor do campo2 para cada valor do campo1.
Pelo que eu saiba o Distinct age sobre a linha inteira.

Mais uma vez espero poder ter ajudado,

Jony Ridel
Programador
Mais Informatica
Feira de Santana / BA
---------------------

Sergio Keller escreveu:

 > Oi Jony.
 > Obrigado pela ajuda mas tem 2 coisas que não estou conseguindo.
 > 1) Tem que ser uma view ou tenho como fazer um select dentro de outro
 > select
 > 2) Tenho como fazer Distinct de um campo apenas.   Por exemplo   Select
 > campoa,Distinct campob
 >
 > Obrigado pela ajuda
 >
 > Sergio Keller
 >
 > ----- Original Message -----
 > From: "Jony Ridel" <jonyridel em aol.com>
 > To: "FireBase" <lista em firebase.com.br>
 > Sent: Friday, May 06, 2005 2:25 PM
 > Subject: Re: [firebase-br] Montar SQL
 >
 >
 > Não sei se é a melhor forma mas vc pode fazer o seguinte.
 > Criar uma View usando Union All e depois fazer um select da View criada
 > com Group By pelo Campo1 com o Max do Campo 2.
 >
 > Espero poder ter ajudado,
 >
 > Jony Ridel
 > Programador
 > Mais Informatica
 > Feira de Santana / BA
 > ---------------------
 >
 > Sergio Keller escreveu:
 >
 > > Amigos.   estou com problema para montar o sql do seguinte problema
 > >
 > > tenho uma tabela A
 > > Campo1    Campo2
 > > A                100
 > > B                200
 > > C                300
 > > D                400
 > > E                500
 > >
 > > tabela B
 > > C                350
 > > F                600
 > >
 > > tabela C
 > > B                250
 > > F                700
 > >
 > > O resultado final deverá ser:
 > > A                100
 > > B                250
 > > C                350
 > > D                400
 > > E                500
 > > F                700
 > >
 > > Sendo que sempre que o campo 1 for igual nas tabelas, a tabela 3 tem a
 > > preferencia sobre a 2 e a 1, e a tabela 2 tem a preferencia sobre a
 > > tabela1,
 > > e devera resultar sempre somente um registro com cada campo1.
 > > Se alguem puder me ajudar a montar este SQL...
 > > Obrigado
 > >
 > > Sergio Keller
 > >
 > >
 > >
 > > ______________________________________________
 > > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
 > > Para editar sua configuração na lista, use o endereço
 > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
 > > Para consultar mensagens antigas:
 > > http://search.gmane.org/search.php?group=firebase
 > >
 >
 > --
 > Jony Ridel
 > Programador
 > Mais Informatica
 > Feira de Santana / BA
 > ---------------------
 >
 >
 > ______________________________________________
 > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
 > Para editar sua configuração na lista, use o endereço
 > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
 > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
 >
 >
 > ______________________________________________
 > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
 > Para editar sua configuração na lista, use o endereço
 > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
 > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
 >

-- 
Jony Ridel
Programador
Mais Informatica
Feira de Santana / BA
---------------------





Mais detalhes sobre a lista de discussão lista