Visual Basic - DUDA URGENTE EN CONSULTA PLEASE!!

Life is soft - evento anual de software empresarial
 
Vista:

DUDA URGENTE EN CONSULTA PLEASE!!

Publicado por SPOW (193 intervenciones) el 15/06/2006 15:36:20
HOLA COLEGAS, TENGO UNA GRAN DUDA PARA PODER ELIMINAR UNOS REGISTROS CON RESPECTO A LA INSTRUCCION SQL QUE ESTOY UTILIZANDO, CABE DESTACAR QUE DICHA INSTRUCCION LA ESTOY UTILIZANDO EN EL ANALIZADOR DE CONSULTAS.
EL EJEMPLO DE LO QUE QUIERO HACER ES LO SIGUIENTE:

La tabla que genere tiene los siguientes campos:

Campo1 Campo2 Campo3 Campo4 Campo5
123456 24680 CARLOS MANUEL CARRILLO
24680 123456 CARLOS MANUEL CARRILLO
13579 98765 ANGELA MARIA FERRER
98765 13579 ANGELA MARIA FERRER

LO QUE DESEO EN MI CONSULTA ES PODER ELIMINAR LOS REGISTROS QUE SE ME DUPLICAN PARA QUE DE ESTA MANERA PUEDA QUEDARME DE LA SIGUIENE FORMA:

Campo1 Campo2 Campo3 Campo4 Campo5
123456 24680 CARLOS MANUEL CARRILLO
13579 98765 ANGELA MARIA FERRER

HE EVALUADO UNA SERIE DE CONSULTAS PERO NO HAY FORMA DE QUE ME ARROJE LOS RESULTADOS DESEADOS YA QUE ME ELIMINA TODOS LOS REGISTROS CUANDO HAGO LAS COMPARACIONES. SE QUE HAY PERSONAS MUY PROFESIONALES EN ESTE FORO LO CUAL AGRADECE DE SU AYUDA
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

RE:DUDA URGENTE EN CONSULTA PLEASE!!

Publicado por Javi RM (187 intervenciones) el 15/06/2006 16:10:05
Sabes,... debes crear un pequeño proceso para eliminar los duplicados. Si estás usando Access está bastante chungo hacerlo por el diseñador y el editor SQL (Que seria lo suyo)

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

RE:DUDA URGENTE EN CONSULTA PLEASE!!

Publicado por Javi RM (187 intervenciones) el 15/06/2006 16:16:24
Perdona por lo de antes, entendí mal la pregunta,..... vaya ida de olla.
Claro que lo puedes hacer, entra en el editor SQL de la consulta y escribe esto:

DELETE FROM Tabla1 WHERE Campo1 IN(
SELECT
MAX(campo1)
FROM tabla1
GROUP BY Campo3 & Campo4 & Campo5
HAVING COUNT(*) > 1
)

Solo debes modificar el nombre de los campos. Te comento por encima, ya que esto no es un curso de SQL, que lo importante aqui es el MAX y el HAVING. No lo cambies.

Comenta si te ha funcionado.
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

RE: | (

Publicado por Javi RM (187 intervenciones) el 15/06/2006 17:11:19
Visto lo poco que se agradecen las ayudas sobre SQL, no pienso dar más ayuda sobre SQL. Que se dirijan al foro correspondiente.
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
sin imagen de perfil

RE: | (

Publicado por Daniel (61 intervenciones) el 15/06/2006 20:23:15
No te enojes Javi, siempre hay alguien que agradece por los demas.
Segui que todo es muy util.
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

......

Publicado por SPOW (193 intervenciones) el 16/06/2006 16:53:07
GRACIAS PERO NO FUE UNA RESPUESTA MUY CORRECTA, ESTA SI ES UNA SOLUCION PARA ELIMINAR LOS DUPLICADOS:

/** PARA ELIMINAR DUPLICADOS**/
/**-- Agrego una columna de tipo IDENTITY */
alter table DOBLE_NUM
add c1 int not null identity(1, 1)
go

/**-- Creo un Index cluster, sobre la columna agregada **//
create unique nonclustered index t1_c1_u_nc_idx
on DOBLE_NUM(c1 asc)
go

/**-- Elimino los registros **/
delete DOBLE_NUM where exists(select * from DOBLE_NUM as t2
where t2.PRIAPE = DOBLE_NUM.PRIAPE AND t2.SEGAPE = DOBLE_NUM.SEGAPE AND
t2.c1 < DOBLE_CEDU_AEC.c1)

/**-- Elimino el indice **/
drop index DOBLE_NUM.t1_c1_u_nc_idx
go

/**-- Quito la columna agregada. *//
alter table DOBLE_NUM
drop column c1
go

ESPERO QUE LE SIRVA A OTROS COLEGAS
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

RE:......

Publicado por Javi RM (187 intervenciones) el 16/06/2006 17:21:20
Perdona, pero tu solicitaste una sentencia SQL que hiciese lo que pedias y la que te posteé funciona correctamente con los datos que tu enviaste. La probé antes de enviarla.

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