Cita:
Iniciado por JuJoGuAl 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 originalSELECT VD.producto_nombre
FROM ventas VE
INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
WHERE
(PT.nombre LIKE '%ADR%')
AND (VE.fecha_emision BETWEEN '2014.03.17' AND '2014.03.24')
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 originalSELECT VD.producto_nombre
FROM ventas VE
INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
Después las ventas:
Código SQL:
Ver originalSELECT VD.producto_nombre
FROM ventas VE
INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
WHERE
(VE.temporal = 'F')
Despues las fechas:
Código SQL:
Ver originalSELECT VD.producto_nombre
FROM ventas VE
INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
WHERE
(VE.fecha_emision BETWEEN '2014.03.17' AND '2014.03.24')
y luego los productos terminados:
Código SQL:
Ver originalSELECT VD.producto_nombre
FROM ventas VE
INNER JOIN ventas_detalles VD ON VE.correlativo = VD.correlativo_principal
INNER JOIN productos_compuestos PC ON VD.producto_codigo = PC.codigo_producto
INNER JOIN productos_compuestos_partes PCP ON PC.codigo_producto = PCP.parte_producto_codigo
INNER JOIN productos_terminados PT ON PCP.parte_producto_codigo = PT.codigo_producto
WHERE
(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.