relacionamento entre tabelas

Delphi

25/08/2006

olá uso firebird 1.5 e delphi 7

Tenho 3 tabelas que se relacionam, uma chamada:
[b:1fcfd210db]EVENTOS_ELEITORES[/b:1fcfd210db] = Tbl_Eventos_E
(CODIGO, NOME, CODIGO_EVENTO, CODIGO_CIDADE)

a outra chamada:
[b:1fcfd210db]EVENTOS[/b:1fcfd210db] = tbl_Eventos
(CODIGO, EVENTO)

e a outra chamada:
[b:1fcfd210db]CIDADE[/b:1fcfd210db] = Tbl_Cidade
( CODIGO, NOME)


Gostaria de saber, como retornar numa consulta SQL, o NOME da CIDADE Cujo CODIGO = CODIGO_CIDADE da tabela EVENTOS_ELEITORES.

acho que eu teria que fazer um LEFT JOIN do tipo...

DM.Tbl_Eventos_E.Close;
DM.Tbl_Eventos_E.SelectSQL.Clear;
DM.Tbl_Eventos_E.SelectSQL.Add(´SELECT E.*, C.NOME FROM Eventos_Eleitores E LEFT JOIN CIDADE C ON C.CODIGO = E.CODIGO_CIDADE where CODIGO_EVENTO = ´´´ + Trim(DM.Tbl_EventosCODIGO.AsString) + ´´´ ORDER BY NOME´); //este nome eh do q da Tabela Evento_Eleitores ou da Tabela Cidade coloque E.NOME se for da  Tabela Evento_Eleitores ou coloque C.Nome se for da Tabela Cidade
DM.Tbl_Eventos_E.Open;


esse SQL acima foi uma ajuda de um amigo, porem aqui quando eu dou um preview no meu quick report usando esse sql o campo que é responsavel por mostrar o nome da cidade no relatorio me mostra o nome da primeira cidade contida na tabela CIDADE para todos os registros da consulta
nao sei se estou fazendo algo errado, derrepente o meu problema está nas ligações com o quick report, por isso vou postar abaixo as ligações que eu fiz pra caso tenha algum problema nelas...

Obs: Tudo que for Label_xxxx. = QRPDBText

quickRep1.dataset := DM.Tbl_Eventos_E

Label_Nome.dataset := DM.Tbl_Eventos_E
Label_Nome.datafield := NOME

Label_Cidade.dataset := DM.Tbl_Cidade
Label_Nome.datafield := NOME


nao consegui encontrar o problema, caso alguem possa me ajudar, por favor é meio urgente isso....

abraços a todos...


Mahdak

Mahdak

Curtidas 0
POSTAR