Fórum Ajuda: Access, Join Left #274069
25/03/2005
0
Então, estou com problemas! Por favor ajudem.
É o seguinte:
Tenho um banco de dados ACCESS! E estou desenvolvendo um sistema em DELPHI 7.
Tenho um tabela F_Pagto, que contém as prestações, os valores dos pedidos. E tenho uma tabela CHEQUES em que eu cadastro os cheques.
Queria fazer uma consulta SQl que retorne todos os campos da tabela F_Pagto e somente os campos correspondentes da tabela Cheques.
Por exemplo, se eu tiver um registro na tabela F_pagto sem correspondência na tabela CHEQUES, eu quero que este registro seja exibido.
Se eu fizer o seguinte código, só são exibidos os registros da tabela F_Pagto que possuem correspondência na tabela CHEQUES.
SELECT * FROM Orcamentos, F_Pagto, Cheques where F_Pagto.Cod_Orcamento=Cheques.Cod_Orcamento and F_Pagto.Vencimento= Cheques.Vencto_Orcamento and Orcamentos.orcamento=F_Pagto.cod_orcamento and F_Pagto.Data_Receb is null ORDER BY F_Pagto.Vencimento;
Neste código, também está relacionada a tabela dos pedido (ORCAMENTOS).
Pesquisei pelo forum e vi que pra fazero que eu quero preciso usar um comando SQL (LEFT JOIN) que eu acho que o ACCESS não suporta. O q vcs acham que eu deveria fazer?Trocar de Banco de Dados ou tem jeito de fazer esta consulta sem usar o LEFT JOIN :?: :?: :!: :!:
Caiosoft
Curtir tópico
+ 0Posts
25/03/2005
Raserafim
SELECT * FROM F_Pagto LEFT JOIN Cheques ON F_Pagto.Cod_Orcamento = Cheques.Cod_Orcamento and F_Pagto.Vencimento = Cheques.Vencto_Orcamento LEFT JOIN Orcamentos ON F_Pagto.cod_orcamento = Orcamentos.orcamento where F_Pagto.Data_Receb is null ORDER BY F_Pagto.Vencimento;
testa e diz se resolve o problema
Gostei + 0
26/03/2005
Caiosoft
SELECT * FROM F_Pagto LEFT JOIN Cheques ON ( F_Pagto.Cod_Orcamento = Cheques.Cod_Orcamento and F_Pagto.Vencimento = Cheques.Vencto_Orcamento ) where F_Pagto.Data_Receb is not null ORDER BY F_Pagto.Vencimento;
Ficou perfeito, mas naum consigo relacionar a tabela Orcamentos, não seu que operador usar (´and´ ´,´) vc sabe como eu faço?
Gostei + 0
26/03/2005
Raserafim
é o seguinte: testei aqui com um banco de dados firebird 1.5 simulando a mesma situação que a sua, sendo que com tabelas diferentes e campos diferentes, e funcionou normalmente o código que eu te enviei. Assumi que o código que vc informou na sua pergunta esteja certo, sem mostrar nenhum erro, apenas mostrando o resultado que ainda não lhe serve.
Com o código que vc refêz, colocando LEFT JOIN Orcamentos ON F_Pagto.cod_orcamento = Orcamentos.orcamento após o último parênteses tb é pra dá certo.
Mas se vc tentar novamente e não consegui pode me mandar a base dedados q vc fêz (pelo menos com estas três tabelas) e dizer o método de acesso q vc está usando. meu e-mail é raserafiminfo@bol.com.br
mas a princípio me diz qual erro exatamente dá e onde o cursor fica parado.
Gostei + 0
28/03/2005
Kotho
SELECT * FROM ( F_Pagto LEFT JOIN Cheques ON F_Pagto.Cod_Orcamento = Cheques.Cod_Orcamento and F_Pagto.Vencimento = Cheques.Vencto_Orcamento ) LEFT JOIN Orcamentos ON F_Pagto.cod_orcamento = Orcamentos.orcamento where F_Pagto.Data_Receb is null ORDER BY F_Pagto.Vencimento;
Gostei + 0
28/03/2005
Diogoalles
[url]http://forum.clubedelphi.net/viewtopic.php?t=59908&highlight=[/url]
Gostei + 0
02/04/2005
Caiosoft
SELECT * FROM ( F_Pagto LEFT JOIN Cheques ON F_Pagto.Cod_Orcamento = Cheques.Cod_Orcamento and F_Pagto.Vencimento = Cheques.Vencto_Orcamento ) LEFT JOIN Orcamentos ON F_Pagto.cod_orcamento = Orcamentos.orcamento where F_Pagto.Data_Receb is null ORDER BY F_Pagto.Vencimento;
Valew mesmo!
Já estava pensando em trocar de banco de dados, mas não consegui configurar o firebird, nem criar as tabelas!!
Se eu mudar do ACCESS para o Firebird, eu terei que mudar todo meu sistema em Delphi?? :?: :?: Eu utilizei os componentes Query e DataSource para fazer as ligações entre BD e o sistema.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)