SQL Server - Duplicacion de Registros

   
Vista:

Duplicacion de Registros

Publicado por adrian (3 intervenciones) el 19/11/2007 20:04:19
Hola, mi problema es el siguiente:

Tengo una Tabla "CLIENTES" con clave primaria "nro_cliente" y otra "TELEFONOS_POR_CLIENTES" donde se guardan pares (nro_cliente, nro_telefono),
El problema es que cuando hago un inner join entre "CLIENTES" y "TELEFONOS_POR_CLIENTES" para obtener un listado de clientes, se repiten los clientes que tienen mas de un teléfono.

Yo solo quiero mostrar un listado de clientes, sin repetir, con el primer numero de telefono, (sin duplicados) pero distinct no me sirve ya que en los registros se repiten los datos del cliente, pero el numero de teléfono es diferente.

que se puede hacer? Desde ya gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duplicacion de Registros

Publicado por Faviel (1 intervención) el 19/11/2007 21:24:07
Hola Adrián, escribe tu sentencia "Query" para ver cómo estás haciendo el inner join, saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicacion de Registros

Publicado por Adrian (1 intervención) el 20/11/2007 12:07:39
La escribo resumida, ya que la consulta involucra a varias tablas más, pero el problema son los clientes repetidos...

"SELECT CLIENTES.nro_cliente, CLIENTES.apellido, CLIENTES.nombre,
TELEFONOS_X_CLIENTES.nro_telefono
FROM CLIENTES INNER JOIN TELEFONOS_X_CLIENTES ON
CLIENTES,nro_cliente = TELEFONOS_X_CLIENTES.nro_Cliente"

Esa es la parte donde me da el problema, ya que si un cliente tiene más de un lefono, se lista más de una vez, por ejemplo:

Nro_cliente Apellido Nombre Telefono
--------------------------------------------------------------------------------
1 Lux Martin 123456
2 Perez Adrian 456789
2 Perez Adrian 987123
3 gonzalez Jorge 4447545

Yo quiero que los clientes se listen una sola vez, con el primer numero de telefono.

Gracias.........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicacion de Registros

Publicado por Isaias (3308 intervenciones) el 20/11/2007 22:33:32
Dime si te da el resultado

SELECT CLIENTES.nro_cliente, CLIENTES.apellido, CLIENTES.nombre,
x.nro_telefono
FROM CLIENTES JOIN (SELECT TOP 1 nro_cliente, nro_telefono FROM TELEFONOS_X_CLIENTES GROUP BY nro_cliente) AS x
ON CLIENTES.nro_telefono = x.nro_Cliente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicacion de Registros

Publicado por ADRIAN (3 intervenciones) el 21/11/2007 13:56:16
No me funcionó. me dice que la columna "nro_telefono" no es válida porque no está incluida en una función de agregación o en la cláusula GROUP BY.

Probé agrupar también por esta columna y tambien probé no agrupar por ninguna, pero el resultado es 0 filas, en ambos casos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicacion de Registros

Publicado por Isaias (3308 intervenciones) el 21/11/2007 20:51:33
Cambialo asi:

SELECT CLIENTES.nro_cliente, CLIENTES.apellido, CLIENTES.nombre,
x.nro_telefono
FROM CLIENTES JOIN (SELECT nro_cliente, MIN(nro_telefono) FROM TELEFONOS_X_CLIENTES GROUP BY nro_cliente) AS x
ON CLIENTES.nro_telefono = x.nro_Cliente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar