[firebase-br] Duvida em Left Outer Join

Carvalho carvalho em invitro.com.br
Qui Mar 10 12:37:14 -03 2005


In Vitro Diagnóstica S/A
Caros colaboradores,

Bom dia!

Estou tentando fazer um select para retornar somente registros em aberto baseado no campo DtEmissao e que não tenha um registro de crédito e somente de débito.

Um registro de débito não está mais em aberto quando eu tenho um outro registro de crédito fechando a fatura do cliente.

Vejam um exemplo:
DtEmissao     Cliente    VrDebito   VrCredito   Vencimento    Numero    Parcela
16/12/2004    1640         490,80                      14/01/2005      49201         1 
16/12/2004    1640                           490,80    20/01/2005      49201         1 

O Select abaixo está me retornando o seguinte:

DtEmissao     Cliente    VrDebito   VrCredito   Vencimento    Numero    Parcela
16/12/2004    1640         490,80                      14/01/2005      49201         1 

E na verdade não deveria retornar nada, pois eu tenho um registro matando o outro.

O que está errado?

Select MF.Numero, MF.NumDoc, MF.NumParcela, MF.VrDeb, MF.DtEmissao,
MF.DtVenc, MF.CodCli, C.Nome, C.Cidade, C.ContaCtb from MovFinanc MF
Left Outer Join Cliente C on C.Codigo = MF.CodCli

Left Outer Join MovFinanc MF2 on MF2.Numero = MF.Numero
and MF2.NumDoc = MF.NumDoc and MF2.NumParcela = MF.NumParcela
and MF2.CodCli = MF.CodCli and MF2.VrCred is not null

where MF.DtEmissao <= '01/31/2005' and MF.VrDeb is not Null
and MF.CodCli = 1640 and MF2.VrCred is null

group by MF.Numero, MF.NumDoc, MF.NumParcela, MF.VrDeb, MF.DtEmissao,
MF.DtVenc, MF.CodCli, C.Nome, C.Cidade, C.ContaCtb

Order by C.Nome

Grato pela colaboração.


Mais detalhes sobre a lista de discussão lista