SQL - detectar valores repetidos en un conjunto de campos

   
Vista:

detectar valores repetidos en un conjunto de campos

Publicado por ROCIO (2 intervenciones) el 12/06/2014 19:07:55
Hola a tod@s!

A ver si me pueden ayudar...

Necesito saber si el valor que se repite entre tres campos de una tabla, también se repite entre tres campos de otra tabla.
Me explico mejor...
Tengo los nombre de personas en dos tablas, ambas con campos paterno, materno, nombre, pero vienen desordenados los campos (osea, el nombre podría venir en el campo de apellidos). Para un trabajo que realizo, necesito comparar si un apellido se repite en una tabla tb se repite en la otra.
Por ejemplo,
si en la tabla A ('gonzalez','gonzalez','fernando') se repite gonzalez, al cruzarlo bajo ciertas condiciones, tambien pueda distinguir que gonzalez está en dos campos de la tabla B.
Del mismo modo, este filtro dejará fuera el cruce de ('gonzalez','gonzalez','fernando') con ('gonzalez','perez','fernando') .

Para mostrar mejor lo que tengo, muestro mi consulta, a la que le falta el filtro mencionado:

1
2
3
4
5
6
7
select DISTINCT *
from   tabla1 R,
           tabla2 C
WHERE R.AP_PATERNO IN (C.AP_PATERNO, C.AP_MATERNO, C.NOMBRE)   -- que el paterno esté contenido en el nombre de la tabla C
      AND R.AP_MATERNO IN (C.AP_PATERNO,C.AP_MATERNO,C.NOMBRE)     -- que el materno esté contenido en el nombre de la tabla C
      AND R.NOMBRE          IN (C.AP_PATERNO,C.AP_MATERNO,C.NOMBRE)   -- que el nombre esté contenido en el nombre de la tabla C
      AND (R.AP_PATERNO <> R.NOMBRE OR R.AP_MATERNO <> R.NOMBRE)  -- que haya al menos un campo distinto y no cruce los ('gonzalez','gonzalez','gonzalez')

No sé si fui suficientemente clara. Espero que alguien me pueda ayudar.

Mil 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
Imágen de perfil de Isaias

detectar valores repetidos en un conjunto de campos

Publicado por Isaias (690 intervenciones) el 12/06/2014 21:20:29
Es meramente IMPOSIBLE.....
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