SQL Server - Eliminar registros que no coinciden entre 2 tablas

   
Vista:

Eliminar registros que no coinciden entre 2 tablas

Publicado por Percy (2 intervenciones) el 26/11/2009 15:22:21
Hola, por favor, necesito de su ayuda, necesito eliminar de la tabla 2 los valores que no coincidan con la tabla 1, usando y relacionado para ello los campos (valor_a, valor_b) asi:

Tabla_1 Tabla_2
VALOR_A VALOR_B
20 10
30 40
40 40
50 70
60 100
70 110
80 120

La idea es eliminar de la tabla 2 los registros que no coincidan con la tabla 1.
La idea es más o menos así:

Delete from tabla_2 where valor_b not in (select valor_a from table_1)
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:Eliminar registros que no coinciden entre 2 tab

Publicado por SERGIO (21 intervenciones) el 26/11/2009 15:57:34
relacionalos por el valor
set rela to tabla1.valor_a into tabla2.valor_b

una vez armada la relacion
hace
dele for tabla2 o tabla1 eof()

o sea en codigo natural significa
borrar todos los datros de la tabla1 miestra con no existan en l atabla 2
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:Eliminar registros que no coinciden entre 2 tab

Publicado por SERGIO (21 intervenciones) el 26/11/2009 15:57:47
relacionalos por el valor
set rela to tabla1.valor_a into tabla2.valor_b

una vez armada la relacion
hace
dele for tabla2 o tabla1 eof()

o sea en codigo natural significa
borrar todos los datros de la tabla1 miestra con no existan en l atabla 2
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 Isaias

RE:Eliminar registros que no coinciden entre 2 tab

Publicado por Isaias (3186 intervenciones) el 26/11/2009 23:15:33
En tu ejemplo, en Tabla_2, tienes 2 valores 40, ¿Ambos se quedan al existir e Tabla_1?
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:Eliminar registros que no coinciden entre 2 tab

Publicado por Sago!!! (11 intervenciones) el 27/11/2009 17:20:02
Si ambos se quedan sencillo.

Utiliza en el Where un Not in () y le haces select al campo de valor en la tabla 1

osea que el where del delete te quedaria algo como

Where
valorB not in (select valorA from tabla1 )
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