Unir tabelas com Join
Bom dia. Estou desenvolvendo um aplicativo em Delphi 7 e utilizo banco de dados Interbase. O acesso a dados é feito através dos seguintes comandos: SQLConnection, SQLDataSet, DataSetProvider, ClientDataSet e DataSource.
Eu tenho três tabelas: Pedidos, Cadastro e Fornecedores. Na tabela Pedidos tenho os seguintes campos: Codigo,CodForne, além dos demais que não vem ao caso. Na verdade eu preciso buscar no Cadastro os campos Descricao, Unidade e ClasFiscal, quando Pedidos.Codigo=Cadastro.Codigo e na tabela Fornecedores preciso buscar o nome do fornecedor quando Pedidos.CodForne=Fornecedores.Codigo.
Eu só preciso fazer um join para poder mostrar na tela estes dados. Já fiz outras vezes, mas não estou conseguindo criar o código SQL pra esta instrução. Na propriedade CommandText de SDSPedidos fiz o seguinte:
select PE.*,CA.Descricao,CA.Unidade,CA.ClasFiscal,FO.Nome as Fornecedor
from Pedidos PE
left outer join Cadastro CA
on CA.Codigo=PE.Codigo
left outer join Fornecedores FO
on FO.Codigo=PE.CodForne
Quando eu vou conectar com o banco de dados dá erro: Table unknown Pedidos!
Não consigo entender onde está o erro.
Se fui clara nas explicações e alguém pudesse me ajudar ficaria muito grata.
Tenham um bom dia...
Eu tenho três tabelas: Pedidos, Cadastro e Fornecedores. Na tabela Pedidos tenho os seguintes campos: Codigo,CodForne, além dos demais que não vem ao caso. Na verdade eu preciso buscar no Cadastro os campos Descricao, Unidade e ClasFiscal, quando Pedidos.Codigo=Cadastro.Codigo e na tabela Fornecedores preciso buscar o nome do fornecedor quando Pedidos.CodForne=Fornecedores.Codigo.
Eu só preciso fazer um join para poder mostrar na tela estes dados. Já fiz outras vezes, mas não estou conseguindo criar o código SQL pra esta instrução. Na propriedade CommandText de SDSPedidos fiz o seguinte:
select PE.*,CA.Descricao,CA.Unidade,CA.ClasFiscal,FO.Nome as Fornecedor
from Pedidos PE
left outer join Cadastro CA
on CA.Codigo=PE.Codigo
left outer join Fornecedores FO
on FO.Codigo=PE.CodForne
Quando eu vou conectar com o banco de dados dá erro: Table unknown Pedidos!
Não consigo entender onde está o erro.
Se fui clara nas explicações e alguém pudesse me ajudar ficaria muito grata.
Tenham um bom dia...
Eliane Dorr
Curtidas 0
Respostas
Rjun
30/03/2005
Você consegue rodar esse SQL no IBConsole ?
Rogerio
Rogerio
GOSTEI 0
Eliane Dorr
30/03/2005
Não tentei. O que eu fiz foi criar um DataModule e inserir nele os componentes de conexão. O erro ocorre quando vou ativar o ClientDataSet.
GOSTEI 0
Rjun
30/03/2005
Tente executar o código SQL no IBConsole. Pelo erro que esta dando, ele não esta encontrando a tabela. Verifique tambem seu SQLConnection. Você esta usando DBExpress ?
Rogeiro
Rogeiro
GOSTEI 0
Eliane Dorr
30/03/2005
Eu executei o mesmo comando no IBConsole e deu o mesmo erro. O engraçado é que se eu inserir apenas um Select * from Pedidos não dá erro nenhum.
GOSTEI 0
Roswel
30/03/2005
Verifique se o nome da tabela Pedidos em sua Base é esse mesmo ...
Tiago
Tiago
GOSTEI 0
Rjun
30/03/2005
Veja se isso funciona :
Select PE.* From Pedidos PE
Rogério
Select PE.* From Pedidos PE
Rogério
GOSTEI 0
Eliane Dorr
30/03/2005
Consegui resolver o problema. Inseri o código SQL da seguinte maneira:
select PE.*,
CA.´Descricao´ as Descricao,
CA.´Unidade´ as Unidade,
CA.´ClasFiscal´ as ClasFiscal,
FO.´Nome´ as Fornecedor
from ´Pedidos´ PE
left outer join ´Cadastro´ CA
on CA.´Codigo´=PE.´Codigo´
left outer join ´Fornecedores´ FO
on FO.´Codigo´=PE.´CodForne´
O problema era que eu não estava inserindo ´´ no nome das tabelas e nos campos. :oops:
Obrigada a todos, mesmo assim.
select PE.*,
CA.´Descricao´ as Descricao,
CA.´Unidade´ as Unidade,
CA.´ClasFiscal´ as ClasFiscal,
FO.´Nome´ as Fornecedor
from ´Pedidos´ PE
left outer join ´Cadastro´ CA
on CA.´Codigo´=PE.´Codigo´
left outer join ´Fornecedores´ FO
on FO.´Codigo´=PE.´CodForne´
O problema era que eu não estava inserindo ´´ no nome das tabelas e nos campos. :oops:
Obrigada a todos, mesmo assim.
GOSTEI 0