Ajuda com Left Join Group by Having

23/01/2006

0

Olá colegas, boa tarde.


Estou precisando de uma dica sobre como deve ficar o select abaixo, pois não da erro mas não retorna nada:

A.EMP = codigo da empresa
A.CLI = código do cliente
A.DOC= código do documento
A.DAT = data de emissao do documento
A.VENC = data de vencimento do documento
A.VALOR = valor do documento

B.VALORPAGO = valor ja pago
B.CHAVE = este campo é varchar que contem a concatenação (CHAVE = A.EMP+A.COC+A.DOC)
 select A.EMP,A.CLI,A.DOC,A.DAT,A.VENC,A.VALOR, 
 sum(B.VALORPAGO)as VALORPAGO,sum(A.VALOR-B.VALOPAGO)as VALOR_em_ABERTO, CHAVE 
from ARQDOCP A, ARQMCOC B 
where 
A.EMP = ´001´ and 
A.COC = ´50147´ and 
A.DOC = ´102030´ and 
B.MCHAVE = (A.EMP+A.COC+A.DOC) 
group by A.EMP,A.CLI,A.DOC,A.DAT,A.VENC,A.VALOR,B.CHAVE 
having sum(B.VALORPAGO) < A.VALOR


Com esta instrução preciso do seguinte:

Listar todos documentos que ainda estão em aberto que seria (A.VALOR-B.VALORPAGO).


meu Grid é +/- assim

DOC-----EMISSAO-------VENCTO---VALOR EM ABERTO
000---00/00/0000---00/00/0000------0,00
000---00/00/0000---00/00/0000------0,00
000---00/00/0000---00/00/0000------0,00
000---00/00/0000---00/00/0000------0,00
000---00/00/0000---00/00/0000------0,00
000---00/00/0000---00/00/0000------0,00
000---00/00/0000---00/00/0000------0,00



Grato.

:arrow:


Macario

Macario

Responder

Posts

23/01/2006

Macario

Esqueci de mencionar o seguinte quando o documento ja tem um pagamento parcial funciona por ele encontra registro em ARQMCOC

agora quando o documento ainda não teve nao retorna.


Responder

23/01/2006

Macario

Resolvido

Eu não tinha compreendido corretamento o funcionamento da clausula Having


Grato pela atenção.

:arrow:


select A.COC,A.DOC,A.DAT,A.VEN,A.VLR, B.MCHAVE, coalesce(sum(B.MVALOR),0)as MVALOR,sum(A.VLR-B.MVALOR)as VALORABERTO from ARQDOCP A left join ARQMCOC B on(B.MCHAVE = (A.EMP+A.COC+A.DOC)) where A.EMP = ´001´ and A.COC = ´50147´ group by A.COC,A.DOC,A.DAT,A.VEN,A.VLR,B.MCHAVE [b:ed34137c45][color=orange:ed34137c45]having coalesce(sum(B.MVALOR),0) [/color:ed34137c45][/b:ed34137c45]< A.VLR



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar