Estou com um problema envolvendo a execução de um select com join num dbexpress, e gostaria de saber se já passaste por isso ou se tens idéia do que ele está fazendo. O comando que reproduzo abaixo, só para veres, quando executado no IbExpert, retorna todos os registros: a tabela GerPlanoContas contém um plano de contas bancário, e a tabela Banlancamento contém os lançamentos para algumas destas contas, somente as de último nível. O objetivo do select é retornar o plano de contas completo, mesmo com as contas para as quais não tenham havido lançamentos, por isso o "left join", e com as informações de onde houve lançamento. Como falei, ao executar o comando no IbExpert, o retorno é o esperado. Porém, ao colocar este comando num SqlDataSet com as ligações para o ClientDataSet dentro de uma aplicação D7, o retorno são somente os registros da tabela GerPlanoContas, como se não houvesse lançamento na outra tabela. Já fiz testes alterando o comando para fazer via union, select na BanLancamento com union na GerPlanoContas, e o retorno é o mesmo. Se tiveres alguma informação sobre este comportamento, agradeceria. select gpl.codconta, extract (year from lct.DatLancamento) Ano, extract (month from lct.DatLancamento) Mes, lct.datlancamento Dt_Lanc, lct.nrodocumento Documento, lct.deschistorico Histor, coalesce (lct.vlrdocumento, 0.00) Valor, lct.docconciliado Concil, gpl.descconta Conta, lct.FlgCredDebt from gerplanocontas gpl inner join admempresa emp on emp.codempresa = :PCodEmpresa left join banlancamento lct on (lct.codempresa = emp.codempresa and lct.codbanco = :pcodbanco and lct.codagencia = :pcodagencia and lct.nrocontacorrente = :pnrocontacorrente and lct.datlancamento between :pdatinicio and :pdatfinal and lct.codreduz = gpl.codreduz) where gpl.codtipoplano = emp.codplanobancario order by gpl.codconta, extract (year from lct.DatLancamento), extract (month from lct.DatLancamento), lct.flgcreddebt desc, lct.seqregistro Att. Agostinho