Desafio: Problemas com relacionamento
Tenho um cadastro de clientes onde existe uma tabela para armazenar os dados do cliente, uma para armazenar os tipos de contado (residencial, comercial,...) e outra para armazenar os contatos (231-3445,...). Fazendo isso eu dou oportunidade ao cliente de armazenar quantos “tipos de contato” e “contato” ele achar necessário para cada cliente!
Minha tabela de contatos (Contatos) está assim:
CodCliente; CodTipo; Contato.
Minha tabela de Tipo (Tipo) de contato está assim:
Codigo; Tipo.
Tenho um relatório do cadastro de clientes, mas não estou conseguindo puxar os telefones de cada cliente e seus respectivos tipos.
O campo “contato” do relatório está ligado a um TQuery com o seguinte código em sua propriedade SQL:
SELECT Clientes.Codigo, Contatos.* FROM Clientes INNER JOIN Contatos ON Clientes.Codigo = Contatos.CodCliente
where Clientes.Codigo = Contatos.CodCliente
Quando executo o relatório todos os clientes aparecem com o mesmo número de telefone (pertencente ao primeiro cliente) e apenas um dos números cadastrados.
Gostaria que cada cliente aparecesse com seus números de telefone e respectivos tipos de contato. Como posso fazer isso?
Qualquer sugestão é bem vinda, devo ter de fazer um relacionamento envolvendo também a tabela “Tipo” e atualizar, mas não estou sabendo como fazer isso...
Minha tabela de contatos (Contatos) está assim:
CodCliente; CodTipo; Contato.
Minha tabela de Tipo (Tipo) de contato está assim:
Codigo; Tipo.
Tenho um relatório do cadastro de clientes, mas não estou conseguindo puxar os telefones de cada cliente e seus respectivos tipos.
O campo “contato” do relatório está ligado a um TQuery com o seguinte código em sua propriedade SQL:
SELECT Clientes.Codigo, Contatos.* FROM Clientes INNER JOIN Contatos ON Clientes.Codigo = Contatos.CodCliente
where Clientes.Codigo = Contatos.CodCliente
Quando executo o relatório todos os clientes aparecem com o mesmo número de telefone (pertencente ao primeiro cliente) e apenas um dos números cadastrados.
Gostaria que cada cliente aparecesse com seus números de telefone e respectivos tipos de contato. Como posso fazer isso?
Qualquer sugestão é bem vinda, devo ter de fazer um relacionamento envolvendo também a tabela “Tipo” e atualizar, mas não estou sabendo como fazer isso...
Flaviolrf
Curtidas 0
Respostas
Einstein
12/04/2003
se o telefone estiver na tabela clientes então o código vai ficar assim:
SELECT Clientes.*, Contatos.* FROM Clientes INNER JOIN Contatos ON Clientes.Codigo = Contatos.CodCliente
where Clientes.Codigo = Contatos.CodCliente
espero ter ajudado
Einstein Xavier
SELECT Clientes.*, Contatos.* FROM Clientes INNER JOIN Contatos ON Clientes.Codigo = Contatos.CodCliente
where Clientes.Codigo = Contatos.CodCliente
espero ter ajudado
Einstein Xavier
GOSTEI 0
Everton
12/04/2003
Tente:
SELECT CLI.*, TIP.Tipo, CON.Contato
FROM Clientes CLI
LEFT OUTER JOIN Contato
ON (CLI.Codigo = CON.CodCliente)
INNER JOIN
ON (CON.CodTipo = TIP.Codigo)
Serão listados todos os clientes, independentes de possuirem ou não contatos.
SELECT CLI.*, TIP.Tipo, CON.Contato
FROM Clientes CLI
LEFT OUTER JOIN Contato
ON (CLI.Codigo = CON.CodCliente)
INNER JOIN
ON (CON.CodTipo = TIP.Codigo)
Serão listados todos os clientes, independentes de possuirem ou não contatos.
GOSTEI 0