novicebg Postado Março 9, 2011 Denunciar Share Postado Março 9, 2011 (editado) Olá..Tenho uma tabela de pessoas e outra de endereços. Estou usando o seguinte select:select pessoa.nome, pessoa.data_nascimento, endereco.rua inner join endereco on pessoa.endereco = endereco.id order by pessoa.data_nascimentoAgora não sei como fazer para mostrar apenas o mais velho de cada endereço. Obrigado. Editado Março 9, 2011 por novicebg Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Evandro Junqueira Ramos Postado Março 10, 2011 Denunciar Share Postado Março 10, 2011 (editado) Olá novicebgJá passei por uma situação semelhante e resolvi utilizando uma sub query para agrupar os dados pela data desejada (MIN ou MAX).Criei uma estrutura semelhante a que você descreveu para simular a situação e gerei um script que atende a sua necessidade.Acredito que haja uma solução melhor, mas o script abaixo pode ser um modelo para resolver o seu problema:-- Criando tabelas para teste CREATE TABLE #endereco (id INT IDENTITY PRIMARY KEY, endereco VARCHAR(100)) CREATE TABLE #pessoa (id INT IDENTITY PRIMARY KEY, nome VARCHAR(100), dtNasc DATETIME, endereco INT FOREIGN KEY REFERENCES endereco(id)) -- Inserindo dados nas tabelas INSERT INTO #endereco VALUES ('endereco 1') INSERT INTO #endereco VALUES ('endereco 2') INSERT INTO #endereco VALUES ('endereco 3') INSERT INTO #pessoa VALUES ('Pessoa A','1986-05-01',1) INSERT INTO #pessoa VALUES ('Pessoa B','1943-12-25',2) INSERT INTO #pessoa VALUES ('Pessoa C','1960-04-21',1) INSERT INTO #pessoa VALUES ('Pessoa D','1989-01-06',1) INSERT INTO #pessoa VALUES ('Pessoa E','1988-06-17',2) -- Realizando consulta desejada SELECT P.id, P.nome, P.dtNasc, P.endereco, E.endereco FROM #pessoa P INNER JOIN (SELECT DISTINCT MIN(dtNasc) AS dtNasc, endereco FROM #pessoa GROUP BY endereco) M ON M.endereco = P.endereco AND M.dtNasc = P.dtNasc INNER JOIN #endereco E ON E.id = P.endereco -- Excluindo tabelas DROP TABLE #pessoa DROP TABLE #enderecoAbs... Editado Março 10, 2011 por Evandro Junqueira Ramos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 novicebg Postado Março 10, 2011 Autor Denunciar Share Postado Março 10, 2011 Olá novicebgJá passei por uma situação semelhante e resolvi utilizando uma sub query para agrupar os dados pela data desejada (MIN ou MAX).Criei uma estrutura semelhante a que você descreveu...Evandro, Vou testar e posto o resultado. Muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Evandro Junqueira Ramos Postado Março 10, 2011 Denunciar Share Postado Março 10, 2011 Você pode transformar a sub query em uma view também, pode facilitar.Abs!Olá novicebgJá passei por uma situação semelhante e resolvi utilizando uma sub query para agrupar os dados pela data desejada (MIN ou MAX).Criei uma estrutura semelhante a que você descreveu...Evandro, Vou testar e posto o resultado. Muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
novicebg
Olá..
Tenho uma tabela de pessoas e outra de endereços.
Estou usando o seguinte select:
Agora não sei como fazer para mostrar apenas o mais velho de cada endereço. Obrigado.
Editado por novicebgLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.