Re: [firebase-br] Ajuda em Select

alexander em ht4b.com.br alexander em ht4b.com.br
Qui Maio 19 12:23:12 -03 2005


Jean,

Testa se desse jeito resolveria. Não sei se a performance ficará boa.

SELECT A.CGC_CPF_CEI, A.NOME, A.ENDERECO_EMPR,A.NUMERO_EMPR,A.BAIRRO_EMPR,A.CEP_EMPR,A.CIDADE_EMPR,B.NOME,A.ESTADO_EMPR,
A.DDD,A.FONE,A.FAX,A.CELULAR,A.EMAIL1,A.EMAIL2,
(SELECT FIRST 1 C.NOME FROM CLSOCIO C WHERE C.CLIENTE = A.CLIENTE ) AS SOCIO1,
(SELECT FIRST 1 C.NOME FROM CLSOCIO C WHERE C.CLIENTE = A.CLIENTE AND
        A.NOME <> (SELECT FIRST 1 D.NOME FROM CLSOCIO D WHERE D.CLIENTE = A.CLIENTE ) ) AS SOCIO2,
A.ATIVIDADE,A.BASETERRITORIAL,D.NOME
FROM CLIENTE A
INNER JOIN CIDADE B ON A.CIDADE_EMPR = B.CIDADE
INNER JOIN BASETERRITORIAL D ON A.BASETERRITORIAL = D.BASETERRITORIAL
WHERE A.IDENTIFICACAO <= 5 AND
A.CORRESPONDENCIA <> 'SU'
ORDER BY A.BASETERRITORIAL,A.CLIENTE

Atenciosamente,
Alexander Apolinário
Analista de Sistemas
CT & P Informática

--------------------------- Mensagem Original ---------------------------
De: "Jean R. Streleski" <jrs.net em uol.com.br>
Para: Grupo FB <lista em firebase.com.br>
Enviada em: Quinta-feira, 19 de Maio de 2005 11:57h
Assunto: [firebase-br] Ajuda em Select
> Olá
> 
>     Tenho a seguinte estrutura de tabelas(FB 1.0):
> 
>     CLIENTE        CLSOCIO
>     
>     A tabela CLSOCIO tem um relacionamente de 1 x n com CLIENTE, ou seja, um cliente pode ter n Sócios. Preciso efetuar uma consulta, num select único, que me retorne uma série de dados de um cliente e o nome de dois sócios do referido cliente. Estou usando a consulta abaixo e tentei fazer isso usando SUB-Selects, mas não consegui usar o ORDER BY no SubSelect para diferenciar o registro que quero. Como poderia fazer isso sem ter q recorrer a tabelas temporárias ou Stored Procedures???
> 
> Agradeço o Auxílio
> Detalhe : FB 1.0
> 
> 
> Jean R. Streleski 
> Bauru SP
> 
> 
> 
> --------------------------------------------------------------------------------
> 
> SELECT A.CGC_CPF_CEI, A.NOME, A.ENDERECO_EMPR,A.NUMERO_EMPR,A.BAIRRO_EMPR,A.CEP_EMPR,A.CIDADE_EMPR,B.NOME,A.ESTADO_EMPR,
>        A.DDD,A.FONE,A.FAX,A.CELULAR,A.EMAIL1,A.EMAIL2,
>        (SELECT FIRST 1 C.NOME FROM CLSOCIO C WHERE C.CLIENTE = A.CLIENTE ) AS SOCIO1,
>        (SELECT FIRST 1 C.NOME FROM CLSOCIO C WHERE C.CLIENTE = A.CLIENTE ) AS SOCIO2,
>        A.ATIVIDADE,A.BASETERRITORIAL,D.NOME
> FROM CLIENTE A
>  INNER JOIN CIDADE B ON A.CIDADE_EMPR = B.CIDADE
>  INNER JOIN BASETERRITORIAL D ON A.BASETERRITORIAL = D.BASETERRITORIAL
> WHERE A.IDENTIFICACAO <= 5 AND
>       A.CORRESPONDENCIA <> 'SU'
> ORDER BY A.BASETERRITORIAL,A.CLIENTE
> 
> 
> 
> ______________________________________________
> 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
> 







Mais detalhes sobre a lista de discussão lista