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)
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
Grato.
:arrow:
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
Curtir tópico
+ 0
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.
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:
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
Clique aqui para fazer login e interagir na Comunidade :)