SQL Server - Consulta en Sql

   
Vista:

Consulta en Sql

Publicado por lender marck9106@hotmail.com (10 intervenciones) el 24/04/2014 00:49:57
Hola amigos buenas tardes,

necesito de su ayuda con urgencia, mi jefe me pidio lo siguiente:

tenemos una base de datos en sql server 2008 me dijo que neceditava saber los productos que no se habian vendido en una fecha determinada me dijo lo siguiente la tabla OINV es donde se almacenan las facturas la tabla INV1 es donde esta el detalle de la factura y la tabla OINV es donde estan todos los productos que vendemos, me dijo para saber los productos que no se han vendido entre una fecha me imagino q lo q el quiere es que yo llame algunos datos de la tabla factura otros de la tabla detalle de factura y esos datos los compare con la tabla donde tengo todos mis productos, se supone que si estan en productos y no estan en facturas osea en facturas son null significan que nunca han facturado ese producto.

yo se que estoy un poco enrredado pero si me van dando pautas para sacar este problema les agradeceria.

Mil gracias
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 Isaias

Consulta en Sql

Publicado por Isaias (3186 intervenciones) el 24/04/2014 17:44:18
Ok, la petición es muy CLARA.

"Dame de un rango de fechas, aquellos productos que no se han VENDIDO"

¿Cuál es el avance que llevas de tu query?
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

Consulta en Sql

Publicado por lender (10 intervenciones) el 24/04/2014 17:59:22
select I.ItemCode,I.ItemName, D.Dscription from OITM I /*funcionando */
left join INV1 D on
I.ITEMCODE = D.ITEMCODE
where
D.Dscription is null

Lo que tengo aca es que de la tabla inventario me seleccione itemcode, itemname y de la tabla detalle de factura me seleccione dscription cuando hace la comparacion si dscription es null es por que el item nunca ha estado en una factura.

la tabla inventario tiene un campo que se llama "createdate" la tabla detalle de factura tiene un campo docdate ya intente llamar docdate en la seleccion pero siempre me salen null me imagino q es porque el producto nunca ha estado en una factura entonce no tiene docdate y cuando llamo createdate en la consulta me sale obvio la fecha, la cosa es que no se como hacer el filtro por fecha.

mi jefe me dijo los productos que no se han vendido en un rango de fecha.

gracias por tu respuesta y espero tu pronta ayuda.


mil gracias
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

Consulta en Sql

Publicado por Isaias (3186 intervenciones) el 24/04/2014 18:44:27
Entonces regresemos a la clase de MANEJO DE CONJUNTOS y MATEMATICAS APLICADAS A LA COMPUTACION.

¿Cuál es tu base para sacar la información?

Conjunto: PRODUCTO

¿Cuál es el filtro?

Filtro: Que no se encuentre en un rango de fechas, conjunto: FACTURA

Simplemente debo hacer un JOIN entre PRODUCTO y FACTURA, por la propiedad o campo que une a ambos conjuntos y decirle, "DONDE NO EXISTA" (NOT EXISTS)

SELECT * FROM PRODUCTO WHERE NOT EXISTS (SELECT * FACTURA WHERE FACTURA.PRODUCTO_ID = PRODUCTO.PRODUCTO_ID
AND FACTURA.FECHA BETWEEN '20140101' AND '20140424')

Eso te dará, TODOS LOS PRODUCTOS que no han sido registrados en un tiempo determinado

Esto es un ejemplo de como hacerlo, aplícalo a tus tablas correspondientes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Consulta en Sql

Publicado por lender (10 intervenciones) el 02/05/2014 23:08:57
Isaias gracias por la ayuda me sirvió mucho, que pena responder tan tarde pero he estado ocupado.

Mil gracias
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