Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-08-2007
drykea drykea is offline
Miembro
 
Registrado: abr 2007
Posts: 113
Poder: 18
drykea Va por buen camino
Question Registros no coincidentes entre consultas

Hola a tod@s.

Tengo un problema que no sé como solucionar.
Uso una base de datos SQL Server y tengo una tabla con x campos, con la clave primaria formada por tres campos.

El problema es que en una insercion masiva de datos, por error se han insertado varios registros 'duplicados' que en realidad no lo son, es decir son iguales en todo menos en la clave primaria.

Lo que quiero es seleccionar los registros mal insertados.
Se pueden diferenciar por 2 de los campos de la PK.

He conseguido una consulta con los campos que se insertaron en la insercion masiva (erroneos o no) y otra con los que ya habia y se han duplicado.

Necesito alguna sentencia que me devuelva los campos que no estan una de las consultas, pero no he sabido hacerlo. He probado con subconsultas pero me devuelve los que sí estan. Algo así:

select * from (select * from tabla1 where campo1 = pk1) as t2

Es muy urgente. Muchas gracias.
Responder Con Cita
  #2  
Antiguo 08-08-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Mas bien hay que replantear lo que deseas, porque al hacer
Código SQL [-]
  select * from (select * from tabla1 where campo1 = pk1) as t2


en realidad no estas haciendo mas que lo mismo, nada más que le das una vuelta.

Si ya los tienes identificados, pienso que deberías copiarlos en una tabla temporal y después hacer un join a esa tabla para encontrar lo que buscas.

Ahora que si quieres ver otra forma de borrar registros duplicados, puedes revisar este enlace
__________________

Responder Con Cita
  #3  
Antiguo 08-08-2007
drykea drykea is offline
Miembro
 
Registrado: abr 2007
Posts: 113
Poder: 18
drykea Va por buen camino
Question

Perdón creo que no lo he explicado bien.

Tengo dos consultas. Entre los registros de la consulta 1 con pk1, están los registros de la consulta2 con pk2

Lo que quiero es obtener los registros que están en la consulta1 y en la consulta2 a la vez y para poder eliminarlos de la consulta1
Responder Con Cita
  #4  
Antiguo 08-08-2007
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Smile Registros no coincidentes entre consultas

Hola drykea en ese caso debes hacer una consulta así:

Código SQL [-]
"delete from consulta1 where pk1 in select pk2 from consulta2"

ahora es posible que te funcione esta otra, si la primera no te sirve o no cumple tus espectativas,...

Código SQL [-]
"delete from tabla1 where pk1 in select pk2 from tabla2,tabla1 where pk1=pk2"

espero haberte sido de ayuda.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener combinación de Registros de dos consultas independientes gluglu SQL 4 10-07-2006 17:43:57
Diferencia entre Consultas santi33a MS SQL Server 1 08-11-2005 08:19:22
Como realizar consultas entre dos bases de datos jfgonzalez Conexión con bases de datos 1 20-10-2005 01:52:48
consultas SQL entre delphi y MySQL docarrillo SQL 1 03-07-2003 02:31:22
consultas entre varias tablas Irina SQL 3 27-05-2003 19:58:32


La franja horaria es GMT +2. Ahora son las 05:39:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi