¿Cómo hacer una consulta en la cual se busquen duplicados en ciertos registros de una misma fila?

Me preguntaba si habría alguna forma de hacer una consulta en la cual se busquen duplicados en ciertos registros de una misma fila.
1

1 respuesta

Respuesta
1
Bien.
Si no he entendido mal esta vez, tienes una tabla en la que cada fila tiene 20 campos. Lo que quieres es saber si en una fila determinada tienes valores duplicados en los campos.
¿Es eso?
Bien. Para lo que te voy a explicar, vas a necesitar que uno de los campos sea clave. Supondremos que el campo clave es el C1 y que los demás campos se llaman C2, C3 ... C20.
Crea una consulta de union de la forma:
SELECT C1 as Clave, "C2" as Campo, C2 as Valor FROM Tabla
UNION
SELECT C1 as Clave, "C3" as Campo, C3 as Valor FROM Tabla
UNION
SELECT C1 as Clave, "C4" as Campo, C4 as Valor FROM Tabla
UNION
...
Union
SELECT C1 as Clave, "C20" as Campo, C20 as Valor FROM Tabla
Sálvala (por ejemplo como Consulta1)
Ahora harás una nueva consulta:
SELECT Clave, Valor, Count(Campo) AS Iguales FROM Consulta1 GROUP BY Clave, Valor WHERE Count(Campo)>1
Esto te devolverá la clave del registro y el valor que aparece repetido.
¿Era esto lo que necesitabas?
Parece que no me he explicado bien. Por ejemplo, supongamos que tenemos una tabla con campos de 1 al 20, lo que queremos es saber si hay algún registro duplicado entre los campos del 1 al 20 de una misma fila. Espero haberlo aclarado. Gracias de antemano.
Supongo que al decir fila te refieres a tabla.
Pongamos un ejemplo.
Tabla T_NINOS con los campos Edad y Nombre. Quiero buscar todas las edades que tienen más de un niño y que me dé la edad y los nombres de los niños de dicha edad.
La sentencia SQL para conseguirlo es:
SELECT T_NINOS.Edad, T_NINOS.Nombre
FROM T_NINOS
WHERE (((T_NINOS.Edad) In (SELECT [Edad] FROM [T_NINOS] As Tmp GROUP BY [Edad] HAVING Count(*)>1 )))
ORDER BY T_NINOS.Edad;
Aquí puedes sustituir los campos de mi ejemplo por los correspondientes a tu caso.
¿Cómo he llegado hasta aquí? (Procedimiento recomendado):
En consultas, pulsas el botón Nuevo. Te sacará una ventana con una serie de asistentes.
Eliges el "Asistente para búsqueda de duplicados".
Te pedirá la tabla. Una vez le dices la tabla, te pide el campo en el que quieres buscar los duplicados. Después te pregunta la información adicional (el campo con los duplicados te lo va a mostrar) que deseas ver para esos registros duplicados. A continuación te pide un nombre para la consulta. Le das a finalizar y ... "voilá" ya tienes tu consulta de búsqueda de duplicados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas