Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/04/2014, 14:42
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Saber las cantidades vendidas de un producto

Cita:
Iniciado por JuJoGuAl Ver Mensaje
Buenas amigos busco saber que cantidad de un producto vendi en un determinado lapso de tiempo, les cuento la estructura de las tablas:

(...)

y esto me arroja NULL =(

Señale Cantidad y fehca porque lo que busco es Sumar las cantidades de un Aderezo, para ver como se mueve en una semana.

Alguien podria hecharme una mano?
Por lo pronto, trata de simplificar las cosas, y usar alias. Ayuda a poder leer la query sin tantas complicaciones:

Código SQL:
Ver original
  1. SELECT VD.producto_nombre
  2. FROM ventas VE
  3.     INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
  4.     INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
  5.     INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
  6.     INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
  7. WHERE
  8.     (PT.nombre LIKE '%ADR%')
  9.     AND (VE.fecha_emision BETWEEN '2014.03.17' AND '2014.03.24')
  10.     AND (VE.temporal = 'F')
Luego, considerando que una query sólo devuelve NULL si no se cumplen todas las condiciones al mismo tiempo, yo te sugeriría que analices los resultaods parte por parte, a ver qué condición no se cumple.
Primero los JOIN:
Código SQL:
Ver original
  1. SELECT VD.producto_nombre
  2. FROM ventas VE
  3.     INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
  4.     INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
  5.     INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
  6.     INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto

Después las ventas:
Código SQL:
Ver original
  1. SELECT VD.producto_nombre
  2. FROM ventas VE
  3.     INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
  4.     INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
  5.     INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
  6.     INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
  7. WHERE
  8.     (VE.temporal = 'F')

Despues las fechas:
Código SQL:
Ver original
  1. SELECT VD.producto_nombre
  2. FROM ventas VE
  3.     INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
  4.     INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
  5.     INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
  6.     INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
  7. WHERE
  8.     (VE.fecha_emision BETWEEN '2014.03.17' AND '2014.03.24')
y luego los productos terminados:
Código SQL:
Ver original
  1. SELECT VD.producto_nombre
  2. FROM ventas VE
  3.     INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
  4.     INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
  5.     INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
  6.     INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
  7. WHERE
  8.     (PT.nombre LIKE '%ADR%') )

Si falla la primera, los JOINs no se cumplen todos.
Si falla la fecha (muy probable), el formato usado no es correcto.
Como sea, hay que depurar una a una.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)