Marcelo2011 Postado Fevereiro 22, 2011 Denunciar Share Postado Fevereiro 22, 2011 Olá pessoal, sou novo na área, e estou com um problema sem solução:Num SELECT onde tenhamos, digamos, 10 MARIA DA SILVA, entre outros nomes diferentes,como listar somente uma MARIA DA SILVA, a com ID mais atual, e os outros nomes?Grato pela atenção,Mark40 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Fevereiro 22, 2011 Denunciar Share Postado Fevereiro 22, 2011 Bom dia Marcelo, Para listar apenas uma Maria, com o Id mais atual:select top 1 Nome from TABELA order by ID desc Para pegar os outros nomes, retire o top 1. No fonte pode-se tratar o resultado como quiser... Seria isto que deseja? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo2011 Postado Fevereiro 23, 2011 Autor Denunciar Share Postado Fevereiro 23, 2011 Não era bem isso. Verifique a tabela abaixo:Nome IDMarcos Paulo 09Maria Aparecida 06Maria Aparecida 08Mario Andrade 16Maria Aparecida 19 <=========Mariana Souza 22Preciso listar apenas uma MARIA APARECIDA nesta listagem, a de ID 19, que seria a mais atual. Todos os outros nomes tambem precisam aparecer,sempre com os IDs mais altos.Não sei como fazer isso.:'-(AbraçosMarcelo========================================================================== Para pegar os outros nomes, retire o top 1. No fonte pode-se tratar o resultado como quiser... Seria isto que deseja? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Fevereiro 23, 2011 Denunciar Share Postado Fevereiro 23, 2011 Bom dia Marcelo, você quer pegar a Maria de id 19 e depois pegar os demais nomes ordenados por id em um mesmo select? Se for isso não dá. Não tem como fazer ordenações distintas no mesmo select. O mais interessante seria pegar o maior id da Maria e depois pegar o resto dos nomes. Ficaria mais ou menos assim:select TOP 1 * from #teste where nome='Maria Aparecida' order by ID desc SELECT * FROM #teste WHERE id NOT IN (select TOP 1 id from #teste where nome='Maria Aparecida' order by ID desc) ORDER BY id DESC Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo2011 Postado Fevereiro 24, 2011 Autor Denunciar Share Postado Fevereiro 24, 2011 Ola Fulvio, bom dia,Bem, ainda não era bem isso que preciso. Xô tentar explicar meu "pobrema"Tenho uma pesquisa de nomes, digito digamos "MAR" e aparece uma grid na telapara escolher um dos nomes abaixo:Nome IDMarcos Paulo 09Maria Aparecida 06Mariana Souza 22Maria Aparecida 08Mario Andrade 16Maria Aparecida 19Marcos Paulo 35Preciso listar nesta grid APENAS os nomes sem se repetirem, com os IDs mais altos.Ou seja, a grid deveria mostrar assim na tela:Nome IDMarcos Paulo 35Maria Aparecida 19Mariana Souza 22Mario Andrade 16Como fazer isso? E em ordem alfabética?============================================================================SELECT * FROM #teste WHERE id NOT IN (select TOP 1 id from #teste where nome='Maria Aparecida' order by ID desc)ORDER BY id DESC Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Fevereiro 24, 2011 Denunciar Share Postado Fevereiro 24, 2011 Ahm...... Agora entendi. rs... Dá uma olhada no exemplo abaixo: CREATE table #teste (Nome VARCHAR(50), id INT) INSERT INTO #teste VALUES ('Marcos Paulo', 09) INSERT INTO #teste VALUES ('Maria Aparecida', 06) INSERT INTO #teste VALUES ('Mariana Souza', 22) INSERT INTO #teste VALUES ('Maria Aparecida', 08) INSERT INTO #teste VALUES ('Mario Andrade', 16) INSERT INTO #teste VALUES ('Maria Aparecida', 19) INSERT INTO #teste VALUES ('Marcos Paulo', 35) SELECT * FROM #teste WHERE nome LIKE 'Mar%' AND id IN (SELECT max(id) FROM #teste GROUP BY Nome) ORDER BY Nome Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manoel Jr. Postado Fevereiro 25, 2011 Denunciar Share Postado Fevereiro 25, 2011 Se não funcionar, tente esteSELECT * FROM #teste WHERE nome LIKE 'Mar%' OR id IN (SELECT max(id)FROM #teste GROUP BY Nome) ORDER BY Nomeapenas troquei o AND por OR. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo2011 Postado Fevereiro 28, 2011 Autor Denunciar Share Postado Fevereiro 28, 2011 Fulvio, de onde você é?Você merece um beijo...Mas vou te dar só um abraço mesmo para não pegar mal... :-)Funcionou.Valeu pela dica :-)AbraçãoMarcelo--------------------------------------------------------------------------Ahm...... Agora entendi. rs... Dá uma olhada no exemplo abaixo: CREATE table #teste (Nome VARCHAR(50), id INT) INSERT INTO #teste VALUES ('Marcos Paulo', 09) INSERT INTO #teste VALUES ('Maria Aparecida', 06) INSERT INTO #teste VALUES ('Mariana Souza', 22) INSERT INTO #teste VALUES ('Maria Aparecida', 08) INSERT INTO #teste VALUES ('Mario Andrade', 16) INSERT INTO #teste VALUES ('Maria Aparecida', 19) INSERT INTO #teste VALUES ('Marcos Paulo', 35) SELECT * FROM #teste WHERE nome LIKE 'Mar%' AND id IN (SELECT max(id) FROM #teste GROUP BY Nome) ORDER BY NomeOlá Manoel,A resposta do Fulvio resolveu a parada com o AND mesmo.Valeu pela sugestão,Abraços,Marcelo----------------------------------------------------------------------Se não funcionar, tente esteSELECT * FROM #teste WHERE nome LIKE 'Mar%' OR id IN (SELECT max(id)FROM #teste GROUP BY Nome) ORDER BY Nomeapenas troquei o AND por OR. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Fevereiro 28, 2011 Denunciar Share Postado Fevereiro 28, 2011 kkkk, se for um beijo aí não falo de jeito nenhum de onde sou!!! Mas um abraço vou aceitar... rs. Precisando estamos aí. :.) Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Marcelo2011
Olá pessoal, sou novo na área, e estou com um problema sem solução:
Num SELECT onde tenhamos, digamos, 10 MARIA DA SILVA, entre outros nomes diferentes,
como listar somente uma MARIA DA SILVA, a com ID mais atual, e os outros nomes?
Grato pela atenção,
Mark40
Link para o comentário
Compartilhar em outros sites
8 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.