Usuário com melhor resposta
Duvida em Select Distinct

Pergunta
-
Pessoal, boa noite
Estou desenvolvendo uma ferramenta e estou com dúvida em um select, não sei como fazer para separar algumas informações. Imaginem o seguinte cenário:
TabelaAtendentes
CodigoAtendente
NomeAtendente
CodigoCidadeTabelaCidades
CodigoCidade
NomeCidade
TabelaCidadesAtendentes
Codigo
CodigoAtendente
CodigoCidadeObviamente é um cenário simples só para explicar minha dúvida. A tabela de atendentes, é preenchida com dados de pessoas, a de cidade é um cadastro com todas as cidades do brasil e a terceira tabela "TabelaCidadesAtendentes", contem a "amarração" dos atendentes com as cidades que eles atendem, pois um atendente pode estar vinculado à mais de uma cidade.
Minha dúvida é: Como eu faço para listar as cidades atendidas, só que sem que se repitam, ou seja, como eu faço para dar um select na tabela "CidadesAtendentes" retornando distintamente as cidades e identificando o Nome da Cidade?
Espero ter sido claro
No aguardo,
Respostas
-
Eder Pardeiro,
Para não se repetir, você deve usar o DISTINCT no campo desejado, ou seja, código da cidade, na tabela TabelaCidadesAtendentes.
Ficaria assim:
SELECT DISTINCT CodigoCidade AS Cidade FROM TabelaCidades
Esse codigo traz os códigos das cidades sem repetição. Mas como sua intenção é trazer o nome, é necessario um JOIN com a tabela Cidade.
Logo, o codigo ficará
SELECT
DISTINCT TabelaCidades.NomeCidade
FROM TabelaCidadesINNER JOIN TabelaCidadesAtendentes
ON
TabelaCidades.ID = TabelaCidadesAtendentes.CodigoCidade
Acho que essa é sua duvida, espero ter ajudado.
- Editado rodrigoosrn domingo, 18 de maio de 2014 03:36
- Sugerido como Resposta rodrigoosrn domingo, 18 de maio de 2014 03:46
- Marcado como Resposta Eder Pardeiro TI domingo, 18 de maio de 2014 04:51
Todas as Respostas
-
Eder Pardeiro,
Para não se repetir, você deve usar o DISTINCT no campo desejado, ou seja, código da cidade, na tabela TabelaCidadesAtendentes.
Ficaria assim:
SELECT DISTINCT CodigoCidade AS Cidade FROM TabelaCidades
Esse codigo traz os códigos das cidades sem repetição. Mas como sua intenção é trazer o nome, é necessario um JOIN com a tabela Cidade.
Logo, o codigo ficará
SELECT
DISTINCT TabelaCidades.NomeCidade
FROM TabelaCidadesINNER JOIN TabelaCidadesAtendentes
ON
TabelaCidades.ID = TabelaCidadesAtendentes.CodigoCidade
Acho que essa é sua duvida, espero ter ajudado.
- Editado rodrigoosrn domingo, 18 de maio de 2014 03:36
- Sugerido como Resposta rodrigoosrn domingo, 18 de maio de 2014 03:46
- Marcado como Resposta Eder Pardeiro TI domingo, 18 de maio de 2014 04:51
-
-
Rodrigo, boa noite...
mais uma vez, obrigado pela ajuda.
Agora estou com mais uma duvida nesse mesmo select. Imagine que na tabela de atendentes eu tenha o campo StatusAtendente e queira listar distintamente somente as cidades que estão vinculadas à atentendes cujo status seja igual à 1
Devo postar isso em uma nova thread ou posso postar aqui mesmo? você consegue me ajudar nessa?
No aguardo!
-
Boa noite... Consegui...
SELECT DISTINCT TBCidades.NomeCidade FROM TBCidades inner join TBCidadesPerfil on TBCidades.CodigoCidade = TBCidadesPerfil.CodigoCidade inner join TBPerfil ON TBPerfil.CodigoPerfil = TBCidadesPerfil.CodigoPerfil WHERE TBPerfil.StatusPerfil = 2