Alex, seguinte... primeiramente você deve manter um SELECT bem legível senão você mesmo acaba se perdendo nele, ai fica difícil a compreensão...ok
Bem, o que eu sugiro é fazer um SELECT usando UNION Antes, peço que procure usar apelidos curtos para as tabelas na clausula FROM isso faz com que seu SELECT fique menor e mais legível , e também não se esqueça de que as colunas que você colocar na clausula SELECT você deve manter uma condição na clausula WHERE senão você vai fazer um acesso FULL na tabela em questão, como é o caso do SELECT que você postou... Outra coisa importante... não deixe de colocar parâmetros na clausula WHERE para diminuir a quantidade de registro de sua pesquisa... notei abaixo que você ta querendo trazer todos os registros ... cuidado hein ! Como não sei a estrutura de suas tabelas vou colocar um exemplo e você ajusta ele conforme suas necessidades... Note que abaixo tem dois SELECTs quase iguais..a única mudança foi na clausula WHERE onde você passa a fazer um acesso a tabela de clientes pessoa jurídica Esse instrução vai pegar dados da tabela de vendas pessoa fisica no período de vencimento especificado abaixo e seus clientes e juntar com os dados da de clientes pessoa jurídica ... Note que os nome das colunas devem ser os mesmo...ok... caso preciso mudar alguma coisa pode usar um ALIAS (Apelido) Espero ter ajudado ! Exemplo : Select a.cod_empresa, a.nom_empresa, b.cod_cliente, b.dat_vencimento, b.vlr_vencimento, c.nom_cliente >From empresa a, vendasPF b, cliente c where b.dat_vencimento >= 01/12/2009 and b.dat_vencimento <= 01/01/2010 and c.cod_cliente = b.cod_cliente and a.cod_empresa = b.cod_empresa order by b.dat_vencimento, b.cod_cliente union Select a.cod_empresa, a.nom_empresa, b.cod_cliente, b.dat_vencimento, b.vlr_vencimento, c.nom_cliente >From empresa a, vendasPJ b, cliente c where b.dat_vencimento >= 01/12/2009 and b.dat_vencimento <= 01/01/2010 and c.cod_cliente = b.cod_cliente and a.cod_empresa = b.cod_empresa order by b.dat_vencimento, b.cod_cliente De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de asandro1501 Enviada em: sexta-feira, 8 de janeiro de 2010 01:01 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] mesma coluna do dbgrid para tabelas diferentes Olá Pessoal Estou pedindo ajuda novamente. Estou montando um resumo de caixa e o cliente quer que apareça o nome de quem está pagando, como existem dois cadastros ( pessoa física e pessoa juridica) gostaria de achar alguma maneira de utilizar a mesma coluna do dbgrid para aparecer o "nome do cliente" e o "nome fantasia". É mais uma questão de estética mesmo. Utilizei o código sql abaixo mas to pensando em utilizar o left join e o rigth join para ficar melhor. select cod_boletopf, codvendapf, n_parcela, vencimento, pagamento, vlrmensal, usuario, vendapf.codcli, clientes.nome as nome, nomefantasia as nome from boletopf, vendapf,clientes, empresa where codvendapf=cod_vendapf and vendapf.codcli=clientes.cod_cli or vendapf.codcli=cod_emp group by cod_boletopf Agradeço desde já Alex Silva [As partes desta mensagem que não continham texto foram removidas]