SELECIONAR A PRIMEIRA OCORRENCIA

CLAUDIAS 13/08/2010 16:01:21
#350186
Tenho uma query com vários Join com outras tabelas. Porém na tabela TELEFONE o usuario pode cadastrar varios registros (por exemplo, dois telefones residenciais).
Para cada usuario gostaria que retornasse apenas a primeira ocorrência de telefone, assim:
Maria 2571-XXXX
Jose 3456-XXXX e não

Maria 2571-XXXX
3921-XXXX
9889-XXXX
Jose 3456-XXXX
9870-XXXX
Alguem pode ajudar?
NETMANIA 13/08/2010 16:59:32
#350200
Você pode fazer algo assim

SELECT nome, (SELECT top 1 telefone FROM nomes WHERE codigo = telefone_principal) FROM telefone telefone_principal

O exemplo acima fiz baseado em SQL Server.
RCMRO 25/08/2010 15:30:08
#351246
Ou assim:

SELECT nome, MIN(NumFone) AS NumFone
FROM Telefone
GROUP BY nome


O ideal é ter mais um campo no cadastro em que seja informado se o telefone é para contato e, durante a manutenção da tabela, deixar somente um deles com esse flag ativo. Ai, a consulta ficaria mais fácil e rápida.

SELECT nome, NumFone
FROM Telefone
WHERE Contato = [ô]S[ô]
ORDER BY Nome
Tópico encerrado , respostas não são mais permitidas