SQL Server - Dos tablas: registros no contenidos de una en otra

 
Vista:
sin imagen de perfil

Dos tablas: registros no contenidos de una en otra

Publicado por Cglez (8 intervenciones) el 01/04/2009 03:23:02
Hola, a todos!

Tengo tres tablas:
Productos: ProductoId
Nombre

VentaInvenatario: ProductoId
Precio

CompraInventario: ProductoId

Quisiera hacer una consulta donde se despliegue "ProductoId, Nombre y Precio" de los productos (ProductoId) de VentaInventario NO contenidos en CompraInventario.

Gracias a quien me pueda ayudar.
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
Imágen de perfil de roger

RE:Dos tablas: registros no contenidos de una en o

Publicado por roger (173 intervenciones) el 01/04/2009 15:08:00
podrias hacerlo asi

select productoid from VentaInvenatario where productoid not in (select productoid from CompraInventario)
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:Dos tablas: registros no contenidos de una en o

Publicado por Mau (67 intervenciones) el 03/04/2009 20:58:35
Aunque lo que apunta Roger es correcto, existen dos serias deficiencias:

1) Se hace algo lento cuando tienes muchos registros en tu tabla CompraInventario
2) Si hay algún valor NULL en CompraInventario en el campo productoid, nunca va a funcionar

Es mucho más recomendable utilizar NOT EXISTS por los dos puntos que comenté arriba.

Tu query quedaría algo así:

SELECT productoid
FROM VentaInventario v
WHERE NOT EXISTS(SELECT * FROM CompraInventario c WHERE c.productoid = v.productoid)

Es otra alternativa, espero haber sido claro. Saludos!
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 roger

RE:Dos tablas: registros no contenidos de una en o

Publicado por roger (173 intervenciones) el 04/04/2009 05:20:54
muchas gracias por el apunte
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:Dos tablas: registros no contenidos de una en o

Publicado por Cglez (8 intervenciones) el 04/04/2009 18:20:23
Un millon de gracias por tu valiosa ayuda.

Saludos!
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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Dos tablas: registros no contenidos de una en o

Publicado por Isaias (4558 intervenciones) el 07/04/2009 04:34:40
De acuerdo al 100% con Mau, son mucho mas efectivas las busquedas con NOT EXISTS
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