Consulta MySql que devuelva valores Cero
Publicado por Ariel David (6 intervenciones) el 19/10/2020 23:52:36
Les comento el problema. Tengo la suguiente tabla:

En donde se registran las ventas realizadas, sumarizadas por codigo de producto (campo codigo) en cada una de las sucursales.
Sobre esa tabla realizo la siguiente consulta SQL:
Esto me trae los datos que necesito, sumando cantidades y calculando el precio del producto, agrupando por codigo y sucursal. Esto me devuelve (entre tantos otros resultados):

Pero, como podran ver, tengo codigos que hay sucursales que NO vendieron y no me aparecen en la consulta, por ejemplo el codigo 999449 se vendio en las sucursales 9, 11, 15, 21 y 23, pero yo necesito que si en alguna sucursal NO se vendo, me muestre el registro con codigo, sucursal y el resto de los valores en CERO. Les comento que la tabla HISTORICOS contiene alrededor de 30 millones de registros.
¿hay alguna forma de hacerlo? Probe con JOIN LEFT pero no llegue a ningun resultado satisfactorio.
Agradecere cualquier aporte.
Saludos !
Agregado: La tabla de sucursales es la siguiente:

sucursales.id_sucursal == historicos.sucursal
Gracias !

En donde se registran las ventas realizadas, sumarizadas por codigo de producto (campo codigo) en cada una de las sucursales.
Sobre esa tabla realizo la siguiente consulta SQL:
1
2
3
4
5
6
7
8
SELECT
codigo , sucursal, depto, proveedor,rubro, subrubro, sum(cantidad) as cantidadT,
sum(cantidad*precio) as Plata
FROM `historicos`
WHERE
`fecha` BETWEEN '2020-08-01' AND '2020-08-31'
GROUP BY codigo, sucursal
ORDER BY sucursal ASC, codigo ASC, depto ASC
Esto me trae los datos que necesito, sumando cantidades y calculando el precio del producto, agrupando por codigo y sucursal. Esto me devuelve (entre tantos otros resultados):

Pero, como podran ver, tengo codigos que hay sucursales que NO vendieron y no me aparecen en la consulta, por ejemplo el codigo 999449 se vendio en las sucursales 9, 11, 15, 21 y 23, pero yo necesito que si en alguna sucursal NO se vendo, me muestre el registro con codigo, sucursal y el resto de los valores en CERO. Les comento que la tabla HISTORICOS contiene alrededor de 30 millones de registros.
¿hay alguna forma de hacerlo? Probe con JOIN LEFT pero no llegue a ningun resultado satisfactorio.
Agradecere cualquier aporte.
Saludos !
Agregado: La tabla de sucursales es la siguiente:

sucursales.id_sucursal == historicos.sucursal
Gracias !
Valora esta pregunta


0