[firebase-br] Select com duplo JOIN

Freitas - Protews benefreitas em terra.com.br
Qua Nov 16 09:01:30 -03 2005


Valeu, Eduardo! Funcionou perfeitamente...
Freitas

----- Original Message ----- 
From: "Eduardo Jedliczka (TeamFB)" <jedyfb em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, November 15, 2005 9:03 PM
Subject: Re: [firebase-br] Select com duplo JOIN


> Um banco de dados relacionais realiza suas operações baseado na teoria dos
> conjuntos, sendo assim, num produto cartesiano a quantidade de valores do
> elemento A sempre será igul a quantidade do elemento B.
>
> Transforme eles em sub-selects, assim serão resolvidos em momento
> (conjuntos) diferentes, retornando assim os valores que você deseja...
>
> Teste este exemplo...
>
> SELECT
> CL.CPF, CL.NOME,
> (Select COUNT(R.CPF)  from CHEQEMITIDOS R where CL.CPF=R.CPF) as REC,
> (Select COUNT(D.CPF) From CHEQDEV D where CL.CPF=D.CPF) as DEV
> FROM CLIENTES CL
> WHERE CL.CPF=:XCPF
>
> Sucesso,
>
> =========================
> Eduardo Jedliczka
> Membro do TeamFB - FireBase
> Apucarana - Pr
> =========================
> ----- Original Message ----- 
> From: "Freitas - Protews" <benefreitas em terra.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, November 15, 2005 7:18 PM
> Subject: [firebase-br] Select com duplo JOIN
>
>
> Boa noite, lista!
>
> Estou tentando o seguinte comando:
>
> SELECT
> CL.CPF, CL.NOME, COUNT(R.CPF) REC, COUNT(D.CPF) DEV
> FROM CLIENTES CL
> LEFT JOIN CHEQEMITIDOS R ON (CL.CPF=R.CPF)
> LEFT JOIN CHEQDEV D ON (CL.CPF=D.CPF)
> WHERE CL.CPF=:XCPF
> GROUP BY CL.CPF, CL.NOME
>
> Onde tenho uma tabela de Clientes, outra de cheques recebidos de clientes
e
> outra de cheques devolvidos pelos clientes.
> Estou tentando mostrar num único SELECT quantos cheques recebidos e
quantos
> devolvidos tenho de um determinado cliente.
> Recebo como resultado totais REC e DEV iguais caso um deles não seja zero.
> Exemplo: Um cliente com 2 cheques recebidos e um devolvido aparece com
dois
> recebidos e dois devolvidos. Outro cliente com 3 recebidos e nenhum
> devolvido aparece certo. O que pode haver de errado?
> Estou usando Firebird 1.5 com Delphi 6. Estou fazendo os testes com o
> IbExpert.
>
> Um grande abraço a todos.
>
> Freitas
> ______________________________________________
> 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
>





Mais detalhes sobre a lista de discussão lista