Query com duas tabelas.......
Oi pessoal.
Adcionei um IbQuery no meu programa que teria que selecionar dua tabelas, (Tab_pedido e Itens_pedido). Criei o seguinte código:
Seleciona pelo numero do pedido e me traz os iten relacionados a este pedido, sendo que apenas me mostra o primeiro registro, é como se só estivesse lendo apenas o inicio das duas tabelas.
Não sei como proceder neste caso, alguém pode me ajudar?
Agradeço desde já a todos.
erivan.
Adcionei um IbQuery no meu programa que teria que selecionar dua tabelas, (Tab_pedido e Itens_pedido). Criei o seguinte código:
With Dmdados.IbQ_Pedido Do Begin Close; Sql.Clear; Sql.Add(´Select * From Tab_pedido,Itens_Pedido´); Sql.Add(´Where Numero_pedido= :ParamNumero´); ParamByName(´ParamNumero´).AsString:=Edit1.Text; open; end;
Seleciona pelo numero do pedido e me traz os iten relacionados a este pedido, sendo que apenas me mostra o primeiro registro, é como se só estivesse lendo apenas o inicio das duas tabelas.
Não sei como proceder neste caso, alguém pode me ajudar?
Agradeço desde já a todos.
erivan.
Peninha
Curtidas 0
Respostas
Acacio
10/09/2006
Tens que fazer a ligação das duas tabelas, existem várias maneiras de fazer essa ligação, mas acho o mais fácil assim;
Select * From Tab_pedido ped,
join Itens_Pedido ite on ped.Numero_pedido = ite.Numero_pedido
Where Numero_pedido= :ParamNumero
ped é o apelido que dei para a tabela Tab_pedido para facilitar,
e ite foi o apelido que dei para a tabela Itens_Pedido. Uma observação se
colocares o * ele vai trazer todos os campos das duas tabelas e a performance fica um pouco pior, por isso ponha somente os campos que precisa trazer na pesquisa.
Select * From Tab_pedido ped,
join Itens_Pedido ite on ped.Numero_pedido = ite.Numero_pedido
Where Numero_pedido= :ParamNumero
ped é o apelido que dei para a tabela Tab_pedido para facilitar,
e ite foi o apelido que dei para a tabela Itens_Pedido. Uma observação se
colocares o * ele vai trazer todos os campos das duas tabelas e a performance fica um pouco pior, por isso ponha somente os campos que precisa trazer na pesquisa.
GOSTEI 0
Peninha
10/09/2006
Acacio obrigado pela força e me desculpe o abuso.
Sera que vc poderia montar em forma de código, pois estou com dificuldade na montagem do código.
Se não for pedir muito.
Obrigado
Sera que vc poderia montar em forma de código, pois estou com dificuldade na montagem do código.
Se não for pedir muito.
Obrigado
GOSTEI 0
Peninha
10/09/2006
Acacio tentei desta forma:
Não gera nenhum erro, no entanto não me retorna nenhum resultado.
Erivan.
With Dmdados.IbQ_Pedido Do Begin Close; Sql.Clear; Sql.Add(´Select * From Tab_Pedido p Join Itens_pedido I On P.Num_pedido = I.Numero_Pedido´); Sql.Add(´Where Numero_Pedido= :ParamNumero´); ParamByname(´ParamNumero´).AsString:=Edit1.Text; open; end;
Não gera nenhum erro, no entanto não me retorna nenhum resultado.
Erivan.
GOSTEI 0
Acacio
10/09/2006
A princípio está certo, se não está trazendo nada tens que fazer testes, por exemplo tire a condição e verifique se ainda não traz nada. Se não traz nada provavelmente o problema é que não tais lincando a base certa.
GOSTEI 0