Datos que no estan en tabla B

29/11/2007 - 22:15 por Penta | Informe spam
Estimados.
Utilizo SS2000 SP4

Que opciones tengo para traer todos los registros que estan en A y no
estan en B ???

Los campos llaves son RUT y Ciudad

Las opciones serian NOT INT y NOT EXISTS ?? existe algun otro
metodo ??
Es mejor NOT EXISTS no ? como seria la sentencia en el NOT EXISTS
ya que tengo

Select * from A
Where rut+ciudad not in
(
Select Rut+ciudad from B
)

Select * from A
Where NOT EXISTS
(
Select Rut,Ciudad from B
)

Salu2.
Penta.

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
30/11/2007 - 10:20 | Informe spam
Hola,

Para lo que indicas puedes utilizar left o right join, te paso un ejemplo
que devuelve los pedidos cuyo cliente no existe en la tabla de clientes

SELECT P.NPedido, P.Cliente, C.Nombre
FROM Pedidos P
LEFT JOIN Clientes C
ON P.Cliente=C.Codigo
WHERE C.Codigo IS NULL

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Penta" escribió en el mensaje
news:
Estimados.
Utilizo SS2000 SP4

Que opciones tengo para traer todos los registros que estan en A y no
estan en B ???

Los campos llaves son RUT y Ciudad

Las opciones serian NOT INT y NOT EXISTS ?? existe algun otro
metodo ??
Es mejor NOT EXISTS no ? como seria la sentencia en el NOT EXISTS
ya que tengo

Select * from A
Where rut+ciudad not in
(
Select Rut+ciudad from B
)

Select * from A
Where NOT EXISTS
(
Select Rut,Ciudad from B
)

Salu2.
Penta.
Respuesta Responder a este mensaje
#2 Carlos M. Calvelo
30/11/2007 - 10:30 | Informe spam
Hola Penta,

On 29 nov, 22:15, Penta wrote:
Estimados.
Utilizo SS2000 SP4

Que opciones tengo para traer todos los registros que estan en A y no
estan en B ???

Los campos llaves son RUT y Ciudad

Las opciones serian NOT INT y NOT EXISTS ?? existe algun otro
metodo ??
Es mejor NOT EXISTS no ? como seria la sentencia en el NOT EXISTS
ya que tengo

Select * from A
Where rut+ciudad not in
(
Select Rut+ciudad from B
)

Select * from A
Where NOT EXISTS
(
Select Rut,Ciudad from B
)




En este último caso tendrás que indicar la correlacción
entre A y B en la subconsulta.

select * from A
where not exists
(
select Rut, Ciudad from B where Rut = A.Rut and Ciudad = A.Ciudad
)

Saludos,
Carlos
Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
30/11/2007 - 11:19 | Informe spam
Hola Penta,

On 30 nov, 10:30, "Carlos M. Calvelo" wrote:

En este último caso tendrás que indicar la correlacción
entre A y B en la subconsulta.

select * from A
where not exists
(
select Rut, Ciudad from B where Rut = A.Rut and Ciudad = A.Ciudad
)




No es necesario para nada especificar columnas en el subselect.

select * from A
where not exists
(
select * from B where Rut = A.Rut and Ciudad = A.Ciudad
)

Vamos.. que no impora lo que pongas en el select.
'select 1' en vez de 'select *' también estaría bien, por ejemplo.

Saludos,
Carlos
Respuesta Responder a este mensaje
#4 Penta
30/11/2007 - 13:36 | Informe spam
Muchas gracias a ambos.

Atte.
Penta.
Respuesta Responder a este mensaje
#5 Penta
30/11/2007 - 13:42 | Informe spam
Y si quisiera hacer un delete de:

delete Pedidos
según la siguiente esta instruccion ??


SELECT P.NPedido, P.Cliente, C.Nombre
FROM Pedidos P
LEFT JOIN Clientes C
ON P.Cliente=C.Codigo
WHERE C.Codigo IS NULL

Atte.
Penta.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida