six 0 Denunciar post Postado Fevereiro 6, 2014 boa tarde a todos do fórum mais uma dúvida. Tenho 4 tabelas: . AReceber . Cliente . APagar . Subgrupo Preciso de um ADOQuery único que me traga os dados por período de data, tanto da tabela de Contas a receber, quanto da tabela Contas a pagar e mostrar estes dados em um relatório no Quickreport Layout do Relatório CONTAS A RECEBER CONTAS A PAGAR Venc. Cliente Doc. Valor Venc. Conta Doc. Valor Fiz esta Rotina sql no ADOQuery, funciona, mas está me trazendo os dados do contas a Receber e contas a pagar duplicados, triplicados, etc e não está filtrando por período de datas. Traz todas as datas. Uso Delphi 7 e banco de dados access. SELECT AReceber.REC_DATAVENC, Cliente.CLI_FANTASIA, AReceber.REC_NUMDOC, AReceber.REC_VALORPARC, AReceber.REC_DATAREC, APagar.PAG_DATAVENC, Subgrupo.SUB_NOME, APagar.PAG_NUMDOC, APagar.PAG_VALORTOTAL, APagar.PAG_DATAPAGTO FROM Cliente INNER JOIN AReceber ON Cliente.CLI_CODIGO = AReceber.REC_CODCLIENTE, Subgrupo INNER JOIN APagar ON Subgrupo.SUB_CODIGO = APagar.PAG_CODSUBGRUPO Where AReceber.REC_DATAVENC and APagar.PAG_DATAVENC BETWEEN :dataini and :datafin and AReceber.REC_DATAREC is Null and APagar.PAG_DATAPAGTO is Null; Gostaria da ajuda de vocês para resolver esta dúvida. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
thyagoollive 2 Denunciar post Postado Fevereiro 12, 2014 Bom, Vamos lá, estou aqui pra te ajudar.. Mas, ta muito bagunçado e esta no tópico errado. Ok, vamos lá: Vai trazer realmente duplicados ou triplicados porque você esta fazendo inner com AReceber e inner com APagar cara.. Faz um union all e coloque um identificador para verificar se é AReceber ou APagar... Tipo isso. (Ps. Não testei o sql pois não criei a tabela, qualquer erro reporte novamente.) SELECT AReceber.REC_DATAVENC, Cliente.CLI_FANTASIA, AReceber.REC_NUMDOC, AReceber.REC_VALORPARC, AReceber.REC_DATAREC, 'ARECEBER' as TIPOFINACEIRO FROM Cliente INNER JOIN AReceber ON Cliente.CLI_CODIGO = AReceber.REC_CODCLIENTE Where AReceber.REC_DATAVENC BETWEEN :dataini and :datafin and AReceber.REC_DATAREC is Null union all SELECT APagar.PAG_DATAVENC, Cliente.CLI_FANTASIA, APagar.PAG_NUMDOC, APagar.PAG_VALORTOTAL, APagar.PAG_DATAPAGTO, 'APAGAR' as TIPOFINACEIRO FROM Cliente INNER JOIN APagar ON Subgrupo.SUB_CODIGO = APagar.PAG_CODSUBGRUPO Where APagar.PAG_DATAVENC BETWEEN :dataini and :datafin and APagar.PAG_DATAPAGTO is Null Compartilhar este post Link para o post Compartilhar em outros sites
six 0 Denunciar post Postado Fevereiro 13, 2014 Thyago boa noite Testei seu código no ADOQuery mas me traz apenas como retorno da sql os dados dos campos antes do UNION ALL depois do UNION ALL , ou seja, os campos do APagar e Subgrupo não aparecem no add All Fields do ADOQuery. obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites