Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

matheus r

[Resolvido] Consulta duas colunas usando DISTINCT

Recommended Posts

Tenho uma tabela como o exemplo a seguir:

ID | ClienteID

0 | 0001

1 | 0001

2 | 0001

3 | 0002

4 | 0002

5 | 0003

6 | 0003

7 | 0003

8 | 0004

9 | 0004

10 | 0005

 

e fazer uma consulta que tivesse um DISTINCT no ClienteID mas que me retornasse também o ID relacionado,

tipo isso:

ID | ClienteID

0 | 0001

3 | 0002

5 | 0003

8 | 0004

10 | 0005

Compartilhar este post


Link para o post
Compartilhar em outros sites

use o distinct e depois faça um sub-select para pegar o primeiro ID encontrado

exemplo:

select distinct A.ClienteID, 
(select top 1 ID from suaTabela B where B.ClienteID = A.ClienteID) as ID 
from suaTabela A

OBS.: sua amostra de resultado está trazendo dois ID's para o registro '0003', acho que inseriu incorretamente um há mais, se não for isso só lamento, vai ter que fazer uma gambi ainda maior

 

 

boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou usando o min (ou max)

 

select ID , ClienteID
from tabela t1
where t1.id = (select min(ID)
              from tabela t2
              where t2.ClienteID = t1.ClienteID)

Compartilhar este post


Link para o post
Compartilhar em outros sites

OBS.: sua amostra de resultado está trazendo dois ID's para o registro '0003', acho que inseriu incorretamente um há mais, se não for isso só lamento, vai ter que fazer uma gambi ainda maior

Estava errado mesmo, corrigi.

 

Eu só vou conseguir testar os códigos na sexta, desculpa não ter olhado antes.

 

Mas já antecipo uma dúvida, eu postei dados de apenas uma tabela, que é o que eu tenho.

Nos dois exemplos que me deram eu teria que ter uma "minhaTabela a, minhaTabela b"

No caso as tabelas a e b seriam a mesma tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Nos dois exemplos que me deram eu teria que ter uma "minhaTabela a, minhaTabela b"

No caso as tabelas a e b seriam a mesma tabela?

 

Sim, auto-referência.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OBS.: sua amostra de resultado está trazendo dois ID's para o registro '0003', acho que inseriu incorretamente um há mais, se não for isso só lamento, vai ter que fazer uma gambi ainda maior

Sou novato em SQL Server e estou pegando boas dicas no fórum...

 

Queria saber prq teria que realizar uma gambiarra no registro '0003'? o Distinct não exibiria o primeiro que encontra?

Compartilhar este post


Link para o post
Compartilhar em outros sites

OBS.: sua amostra de resultado está trazendo dois ID's para o registro '0003', acho que inseriu incorretamente um há mais, se não for isso só lamento, vai ter que fazer uma gambi ainda maior

Sou novato em SQL Server e estou pegando boas dicas no fórum...

 

Queria saber prq teria que realizar uma gambiarra no registro '0003'? o Distinct não exibiria o primeiro que encontra?

teria que realizar a gambi, mas o matheus r, ajustou a amostra, veja o post #4 -> "Estava errado mesmo, corrigi." (ele entrou no 1º post e editou)

 

antes a amostra dele estava com dois registros '0003', assim:

ID | ClienteID
0 | 0001
3 | 0002
5 | 0003
6 | 0003
8 | 0004
10 | 0005

 

corrigindo a amostra ficou do jeito que esta hoje, somente com um registro '0003', assim:

ID | ClienteID
0 | 0001
3 | 0002
5 | 0003
8 | 0004
10 | 0005

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.