Access - consulta eliminicacion segun 2 condiciones

   
Vista:

consulta eliminicacion segun 2 condiciones

Publicado por Julio djinnxs@gmail.com (3 intervenciones) el 18/04/2013 01:50:24
Necesito eliminar registros duplicados x ej si en el campo 2 y en el campo 8 coinciden entonces eliminar todos menos el de fecha mas reciente ej
idestudio patologia
121212 dengue
121212 dengue
121212 dengue
121212 dengue
121212 hantavirus
121212 dengue
121212 hantavirus
suponiendo que estos registros corresponden a una sola persona, entonces la consulta me debería borrar todo menos 1 de cada 1, me debería quedar
idestudio patologia
121212 dengue
121212 hantavirus

obviamente hay otro campo que es idfechaestudio y la consulta me deberia dejar la mas reciente pero es lo de menos son mas de 180000 registros y de este tipo de repetidos hay desde 2 hasta 50 con un mismo idestudio para una sola persona.
gracias

pd: los campos no son contiguos y son mas de 20
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 Norberto

consulta eliminicacion segun 2 condiciones

Publicado por Norberto (432 intervenciones) el 19/04/2013 13:43:21
Hola.

Si hubieras buscado un poquito en el foro habrías encontrado varias respuestas a lo que planteas. No obstante.

Consulta con totales. Agrupas por IdEstudio y Patología y en IdFechaEstudio le pones Último o Máx (si los registros se introducen en orden cronológico deberían de dar el mismo resultado). Obtendrás un único registro para cada Estudio-Patología.

Un saludo.
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

consulta eliminicacion segun 2 condiciones

Publicado por Julio (3 intervenciones) el 19/04/2013 14:21:56
Hola si lo quise hacer asi pero no me lo filtra a lo sumo me saca unos 2000 de los mas de 70000 repetidos, si me funciona cuando solo trabajo con 5 o 6 campos especificos, pero con la totalidad de los campos ya no me funciona esa consulta que la di vueltas para todos lados.
Por eso lo que solicitaba es una que consulta que directamente me los elimine de la tabla ya que después debo correr otras 4 consultas que al ser muy voluminosa la tabla se demora muchas horas en hacerlas cada 1 de las 4 restantes.
y en la otra base que tambien lleva muchos campos y mucha info debo hacer algo pareceido, al final debo machearlas (unirlas) en un excel y que tambien queda gordo el escel por lo que es muy util directamente eliminar los duplicados así se aliviana en peso al final.
Si queres puedo subir la base previo la achico y dejo un par de miles como para ver como son los datos y los campos
gracias

pd: se necesitan todos los campos para despues poder unir las 2 tablas o sea no puedo dejar ninguno afuera
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
Imágen de perfil de Norberto

consulta eliminicacion segun 2 condiciones

Publicado por Norberto (432 intervenciones) el 23/04/2013 12:45:45
Hola.

Para ello crea una consulta de eliminación con los campos * (Donde) e Id. En éste pones el siguiente criterio: Negado In (SELECT Last(Tabla.Id) As xId FROM Tabla GROUP BY Tabla.Estudio, Tabla.Patología)

Ésto te crea una subconsulta con el Id de un único registro para cada estudio-patología y te elimina todos los registros que no coincidan con él. Antes de probarla, haz una copia de la tabla.

Si quieres ejecutarla desde VB puedes poner el siguiente código:

1
2
3
4
5
6
7
Dim miSQL As String
 
miSQL = "DELETE FROM Tabla WHERE Tabla.Id Not In " & _
        "(SELECT Last(Tabla.Id) As xId FROM Tabla & _
        "GROUP BY Tabla.Estudio, Tabla.Patología)"

DoCmd.RunSQL miSQL


Un saludo.
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