CARREGAR GRID COM TABELAS RELACIONADAS

ALEXRONCHI 26/12/2013 13:09:38
#432457
Olá amigos,
Gostaria de tirar uma dúvida, preciso carregar uma grid com algumas informações

Vou relacionar no select 3 tabelas:

- Pessoa
- Endereco
- Telefone

Onde uma pessoa pode ter mais de um endereço e telefone
Só que eu gostaria que aparece na minha grid somente o primeiro endereço e telefone de cada pessoa

Será que existe uma forma de eu fazer isso?

Obrigado!
KERPLUNK 26/12/2013 13:45:44
#432459
Resposta escolhida
Use subqueries.

Select Pessoa.Nome, (Select Top 1 logradouro from Endereco where CodPessoa = Pessoa.Codigo) As Endereco, (Select Top 1 telefone from Telefon e where CodPessoa = Pessoa.Codigo) As Endereco from Pessoa where xxxxx.........
ALEXRONCHI 26/12/2013 14:05:55
#432461
Olá caro KERPLUNK!

Meu, do jeito que você me passou funcionou perfeito! Valeu... Agora, quando eu uso como abaixo, usando todos os campos dentro da subquery, ele me retorna a seguinte informação: Você gravou uma subconsulta que pode retornar mais de um campo sem usar a palavra reservada EXISTS na cláusula FROM da consulta principal.

Eu nunca precisei usar esse EXISTS, onde eu uso ela? Valeu

Select Pessoa.Nome, (Select Top [txt-color=#e80000]*[/txt-color] logradouro from Endereco where CodPessoa = Pessoa.Codigo) As Endereco, (Select Top 1 [txt-color=#e80000]*[/txt-color] from Telefon e where CodPessoa = Pessoa.Codigo) As Endereco from Pessoa
ALEXRONCHI 26/12/2013 14:17:36
#432464
Cara, dei uma fuçada aqui sobre o EXISTS e consegui fazer funcionar, valeu pela sua dica!
Abaixo vou deixar o código que retornou as informações para mim

Select PE.*, EN.*, TE.* From (Pessoa PE Left Join Endereco EN On EN.pessoa_end = PE.id_pes) Left Join Telefone TE On TE.pessoa_tel = PE.id_pes Where Exists (Select * From Endereco Where principal_end =1) And Exists (Select * From Telefone Where principal_tel =1)
Tópico encerrado , respostas não são mais permitidas