Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Eliminar repeticiones con un campo diferente SQL Server

Estas en el tema de Eliminar repeticiones con un campo diferente SQL Server en el foro de SQL Server en Foros del Web. Hola, a ver si me podeis echar una mano, tengo una query que me extrae lo siguiente: SELECT DISTINCT nif, nombre, telefono FROM clientes y ...
  #1 (permalink)  
Antiguo 14/01/2010, 10:25
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 53
Antigüedad: 16 años
Puntos: 2
Eliminar repeticiones con un campo diferente SQL Server

Hola,

a ver si me podeis echar una mano, tengo una query que me extrae lo siguiente:

SELECT DISTINCT nif, nombre, telefono FROM clientes

y me saca

NIF (PK) | Nombre entidad | Telefono
------------------------------------------------------------
00000000A | Empresa inventada | 555000001
00000000A | Empresa inventada | 555000002
00000001B | Empresa inv 2 | 555111111

La primera empresa al tener 2 teléfonos me fastidia el DISTINCT, sería posible hacer que tubiera en cuenta el nif y solo me sacara un registro en lugar de 2?

PD: El teléfono debe aparecer

Muchas gracias :)
  #2 (permalink)  
Antiguo 14/01/2010, 10:46
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Eliminar repeticiones con un campo diferente SQL Server

Cuál teléfono debe aparecer?
  #3 (permalink)  
Antiguo 14/01/2010, 10:58
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 53
Antigüedad: 16 años
Puntos: 2
Respuesta: Eliminar repeticiones con un campo diferente SQL Server

Cita:
Iniciado por daniel00 Ver Mensaje
Cuál teléfono debe aparecer?
Tanto da, el primero o el segundo
  #4 (permalink)  
Antiguo 14/01/2010, 12:39
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Eliminar repeticiones con un campo diferente SQL Server

Entonces es así:

Código:
SELECT nif, nombre,  min(telefono)
FROM clientes 
GROUP BY nif, nombre
  #5 (permalink)  
Antiguo 14/01/2010, 16:57
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 53
Antigüedad: 16 años
Puntos: 2
Respuesta: Eliminar repeticiones con un campo diferente SQL Server

Cita:
Iniciado por daniel00 Ver Mensaje
Entonces es así:

Código:
SELECT nif, nombre,  min(telefono)
FROM clientes 
GROUP BY nif, nombre
Muchas gracias por la respuesta, pero ...... el atributo telefono es un varchar
  #6 (permalink)  
Antiguo 14/01/2010, 17:10
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Respuesta: Eliminar repeticiones con un campo diferente SQL Server

algo asi?

Select c1.nif, c1.nombre, (select top 1 c.telefono from clientes c where c.nif = c1. nif)
from cliente c1
GROUP BY c1.nif, c1.nombre
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #7 (permalink)  
Antiguo 15/01/2010, 01:42
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 53
Antigüedad: 16 años
Puntos: 2
Respuesta: Eliminar repeticiones con un campo diferente SQL Server

Cita:
Iniciado por Thumper Ver Mensaje
algo asi?

Select c1.nif, c1.nombre, (select top 1 c.telefono from clientes c where c.nif = c1. nif)
from cliente c1
GROUP BY c1.nif, c1.nombre
Ahora sí, muchas gracias
  #8 (permalink)  
Antiguo 15/01/2010, 08:25
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Pregunta Respuesta: Eliminar repeticiones con un campo diferente SQL Server

Cita:
Iniciado por Thumper Ver Mensaje
algo asi?

Select c1.nif, c1.nombre, (select top 1 c.telefono from clientes c where c.nif = c1. nif)
from cliente c1
GROUP BY c1.nif, c1.nombre
Martín, ese tipo de subconsultas no son lentas? No sería mejor un join?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #9 (permalink)  
Antiguo 15/01/2010, 10:03
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Eliminar repeticiones con un campo diferente SQL Server

Solo como aclaración la funciones de agregado MIn y MAx funcionan con varchar, en la versión 2005, aunque desconozco si funciona para versiones inferiores.
  #10 (permalink)  
Antiguo 15/01/2010, 10:20
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Eliminar repeticiones con un campo diferente SQL Server

En ese caso, sería bueno saber qué método de ordenamiento usan para poder elegir el mínimo o máximo valor.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Etiquetas: diferente, eliminar, server, sql, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:33.