Preciso de ajuda com relacionamento

Delphi

08/04/2003

Tenho um relatório de aniversariantes em minha aplicação, para esse são inseridos os dados do cadastro de clientes onde o mês da data de nascimento corresponde com o mês atual. Os telefones presente no formulário de cadastro de clientes estão em uma outra tabela chamada ´Contatos´. Na minha tabela de Contatos tem um campo chamado CodCliente que recebe o código do cliente... Preciso fazer com que os telefones de cada cliente apareçam também no relatório. Estou fazendo da seguinte forma:

QYfone.SQL.Clear;
a:=´Select * From Contatos ´;
b:=´Where CodCliente =:Consulta ´;
QYfone.SQL.Add(a+b);
QYfone.ParamByName(´Consulta´).AsInteger := QryAniverCodigo.Value;
QYfone.Close;
QYfone.Open;

Ao executar o código, no relatório, onde deveria estar o telefone do cliente aparace vazio. Como faço esse relacionamento?


Anonymous

Anonymous

Curtidas 0

Respostas

Marcelo.c

Marcelo.c

08/04/2003

SELECT Clientes.Campo1, Clientes.Campo2,Contatos.Campo1, Contatos.Campo2 FROM Clientes INNER JOIN Contatos ON Clientes.CodCliente = Contatos.CodCliente where Clientes.CodCliente = :consulta;


GOSTEI 0
Anonymous

Anonymous

08/04/2003

select contatos.* , clientes.fone
from contatos, clientes
where contatos.codcliente = clientes.cod_cliente


GOSTEI 0
Anonymous

Anonymous

08/04/2003

Acho que esta faltando o campo na sua qryaniversario.
Vc esta informando a consulta mas não o campo que deve retornar o valor


GOSTEI 0
Flaviolrf

Flaviolrf

08/04/2003

A dica que você me postou deu quase certo... O problema é que aparece o mesmo telefone para todos os clientes, como se o ´where´ não estivese funcionando ou funcionando apenas para o primeiro cliente. Como resolvo isso?

Está dessa forma:

SELECT Clientes.Codigo, Contatos.* FROM Clientes INNER JOIN Contatos ON Clientes.Codigo = Contatos.CodCliente
where Clientes.Codigo = Contatos.CodCliente


GOSTEI 0
POSTAR