SELECIONAR A PRIMEIRA OCORRENCIA
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?
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?
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.
SELECT nome, (SELECT top 1 telefone FROM nomes WHERE codigo = telefone_principal) FROM telefone telefone_principal
O exemplo acima fiz baseado em SQL Server.
Ou assim:
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, 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