Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta para borrar registros (access)

Estas en el tema de Consulta para borrar registros (access) en el foro de Bases de Datos General en Foros del Web. Hola Estoy tratando de borrar unos registros que se repiten en el campo "Id"el cual es numerico. La idea es borrar los que estan repetidos. ...
  #1 (permalink)  
Antiguo 15/07/2014, 10:53
paois1
Invitado
 
Mensajes: n/a
Puntos:
Consulta para borrar registros (access)

Hola
Estoy tratando de borrar unos registros que se repiten en el campo "Id"el cual es numerico. La idea es borrar los que estan repetidos. Uso esta instruccion:

Código SQL:
Ver original
  1. DELETE FROM Este
  2. WHERE((
  3. SELECT COUNT (Este.Id)
  4. FROM Este)>1);

Me dice: "La consulta debe tener como mínimo un campo de destino" ¿Alguien me puede ayudar en decirme que está mal? Cabe aclarar que no soy experta en codigo SQL. Esto es en Access.

Última edición por gnzsoloyo; 16/07/2014 a las 10:29
  #2 (permalink)  
Antiguo 16/07/2014, 10:21
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consulta para borrar registros (access)

Estas haciendo mal tu consulta, ya que no estas poniendo ningun campo en el where para hacer la comparacion, para hacer lo que necesitas seria algo como esto:


Código SQL:
Ver original
  1. DELETE FROM Este
  2. WHERE este.id IN (
  3. SELECT este.id FROM(
  4. SELECT COUNT (Este.Id) total,este.id
  5. FROM Este) AS tabla WHERE total>1)

Como ves el codigo es mas complejo que lo que pusiste......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 17/07/2014, 07:56
paois1
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta para borrar registros (access)

Hola Libras, gracias por tu respuesta. Intenté con el código que me dices pero me sigue apareciendo el mismo problema. Me dice: "La consulta debe tener como mínimo un campo de destino"
  #4 (permalink)  
Antiguo 17/07/2014, 08:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta para borrar registros (access)

Cita:
Iniciado por paois1 Ver Mensaje
Hola Libras, gracias por tu respuesta. Intenté con el código que me dices pero me sigue apareciendo el mismo problema. Me dice: "La consulta debe tener como mínimo un campo de destino"
@paois1: Con la sintaxis que te propone @Libras, es imposible qu ete esté devolviendo ese mensaje.
Esta es(ordenada) la que te pasó:
Código SQL:
Ver original
  1. DELETE FROM Este
  2. WHERE este.id IN
  3.     (SELECT este.id
  4.     FROM
  5.         (SELECT COUNT (Este.Id) total,este.id
  6.         FROM Este) AS tabla
  7.     WHERE total>1)
En ese contexto, el conjunto de valores de la subconsulta se compara contra un campo determinado (este.id), por lo que no puede darse el caso.

Postea exactamente lo que usaste en el último intento.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 17/07/2014, 08:37
paois1
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta para borrar registros (access)

Esto fue lo que usé en el último intento

Código sql:
Ver original
  1. DELETE FROM Este
  2. WHERE este.id IN (
  3. SELECT este.id FROM(
  4. SELECT COUNT (Este.Id) total,este.id
  5. FROM Este) AS tabla WHERE total>1);

Solo le agregué el ";" pero igual se lo quité y de igual forma aparece el mensaje

Última edición por gnzsoloyo; 17/07/2014 a las 09:13 Razón: Orotografía
  #6 (permalink)  
Antiguo 17/07/2014, 09:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consulta para borrar registros (access)

como esta armada tu tabla? en donde ejecutas el codigo???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 17/07/2014, 09:34
paois1
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consulta para borrar registros (access)

La tabla se llama Este.
Tiene 4 campos: "Id" es numerico, "NOMBRES" es texto, "APELLIDOS" es texto, "IDENTIFICACION" es texto.
Pongo el código en la vista SQL de la consulta que estoy haciendo
  #8 (permalink)  
Antiguo 18/07/2014, 09:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consulta para borrar registros (access)

Código SQL:
Ver original
  1. DELETE FROM Este
  2. WHERE id IN (
  3. SELECT id FROM(
  4. SELECT COUNT (Id) total,id
  5. FROM Este) AS tabla WHERE total>1);

Prueba con eso :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 07/10/2014, 23:24
 
Fecha de Ingreso: febrero-2011
Mensajes: 85
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Consulta para borrar registros (access)

Buenas no les faltara el * entre el

DELETE * FROM

Saludos GRC
  #10 (permalink)  
Antiguo 08/10/2014, 07:22
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consulta para borrar registros (access)

NO, la sintaxis del delete no lleva *

http://msdn.microsoft.com/en-us/library/ms189835.aspx
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: access, registros, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:35.