Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2008, 10:13
TonoBerenjena
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Lista de registros unicos (varios campos) a partir de un solo campo con duplicidades

Hola:
Tengo un problema al que le he dado muchas vueltas y no he sido capaz de resolver.

Utilizo una tabla, denominada CLIENTES, con datos de empresas (ID, Empresa, Direccion, correoElectronico, etc. )
Me he dado cuenta que en la base de datos aparecen duplicidades del tipo:

ID Empresa Direccion CorreoElectronico
001 [El Corte Ingles ] [Plza.Cataluña, 1] [[email protected] ]
112 [SIC ] [C/ Vifre, 1 ] [[email protected] ]
132 [SIC S.A. ] [Calle Vifre, 1 ] [[email protected] ]
213 [METRASONI ] [Duero, 13 ] [[email protected]]
324 [METRASONI SL ] [C/Duero, 1 ] [[email protected]]
515 [METRASONI S.L.] [Duero - 13 ] [[email protected]]

Los registros duplicados serían el ID=112 e ID =132, por una lado y los ID=213, ID=324 e ID=515 por otro.

Necesito tener una lista de las empresas (Nombre, Direccion y correo electrónico) sin duplicidades (independientemente de si el nombre y la direccion coincide o no y considerando el campo de CorreoElectronico como campo de decisión para las duplicidades).
El resultado de los seis registros anteriores una vez efectuada la selección debería quedar:

ID Empresa Direccion CorreoElectronico
001 [El Corte Ingles] [Plza.Cataluña, 1] [[email protected]
112 [SIC] [C/ Vifre, 1] [[email protected]
213 [METRASONI] [Duero, 13] [[email protected]]

O sea, el segundo registro y siguientes (duplicados) ya no deberían aparecer en la salida

Como el nombre de la empresa y la direccion, de los registros duplicados, no son exactamente iguales NO los puedo utilizar con

SELECT DISTINCT CorreoElectronico, Empressa FROM CLIENTES.

Tampoco puedo utilizar

SELECT CorreoElectronico FROM CLIENTES GROUP BY CorreoElectronico.

ya que solo obtendría la lista de los correos electronicos no duplicados, pero no sabría a que empresa pertenecen.

Si utilizo la subconsulta del tipo

SELECT CorreoElectronico, Empresa, Direccion FROM CLIENTES
WHERE CorreoElectronico IN
(SELECT CorreoElectronico FROM CLIENTES
Group By CorreoElectronico
Having count(*) >1)
ORDER BY CorreoElectronico

optengo todos los registros duplicados, una sola vez tal como deseo, pero no tengo el resto de registros que no están duplicados.


Hay alguien que pueda decirme como solventar este problema

Esperando vuestras respuestas, recibid mi agredecimiento de antemano.