Código MySQL:
Ver originalSELECT sbc.codigo
, sbc.nombre
, ROUND(AVG(sbc.precioVenta
), 2) 'Media Ventas', ROUND(AVG(sbc.precioCompra
), 2) 'Media Compras', SUM(IF(MONTH(sbc.fecha
)=1, sbc.CantidadVentas
, 0)) 'EneroV', SUM(IF(MONTH(sbc.fecha
)=1, sbc.CantidadCompras
, 0)) 'EneroC', SUM(IF(MONTH(sbc.fecha
)=2, sbc.CantidadVentas
, 0)) 'FebreroV', SUM(IF(MONTH(sbc.fecha
)=2, sbc.CantidadCompras
, 0)) 'FebreroC', SUM(IF(MONTH(sbc.fecha
)=3, sbc.CantidadVentas
, 0)) 'MarzoV', SUM(IF(MONTH(sbc.fecha
)=3, sbc.CantidadCompras
, 0)) 'MarzoC', SUM(IF(MONTH(sbc.fecha
)=4, sbc.CantidadVentas
, 0)) 'AbrilV', SUM(IF(MONTH(sbc.fecha
)=4, sbc.CantidadCompras
, 0)) 'AbrilC', SUM(IF(MONTH(sbc.fecha
)=5, sbc.CantidadVentas
, 0)) 'MayoV', SUM(IF(MONTH(sbc.fecha
)=5, sbc.CantidadCompras
, 0)) 'MayoC', SUM(IF(MONTH(sbc.fecha
)=6, sbc.CantidadVentas
, 0)) 'JunioV', SUM(IF(MONTH(sbc.fecha
)=6, sbc.CantidadCompras
, 0)) 'JunioC', SUM(IF(MONTH(sbc.fecha
)=7, sbc.CantidadVentas
, 0)) 'JulioV', SUM(IF(MONTH(sbc.fecha
)=7, sbc.CantidadCompras
, 0)) 'JulioC', SUM(IF(MONTH(sbc.fecha
)=8, sbc.CantidadVentas
, 0)) 'AgostoV', SUM(IF(MONTH(sbc.fecha
)=8, sbc.CantidadCompras
, 0)) 'AgostoC', SUM(IF(MONTH(sbc.fecha
)=9, sbc.CantidadVentas
, 0)) 'SeptiembreV', SUM(IF(MONTH(sbc.fecha
)=9, sbc.CantidadCompras
, 0)) 'SeptiembreC', SUM(IF(MONTH(sbc.fecha
)=10, sbc.CantidadVentas
, 0)) 'OctubreV', SUM(IF(MONTH(sbc.fecha
)=10, sbc.CantidadCompras
, 0)) 'OctubreC', SUM(IF(MONTH(sbc.fecha
)=11, sbc.CantidadVentas
, 0)) 'NoviembreV', SUM(IF(MONTH(sbc.fecha
)=11, sbc.CantidadCompras
, 0)) 'NoviembreC', SUM(IF(MONTH(sbc.fecha
)=12, sbc.CantidadVentas
, 0)) 'DiciembreV', SUM(IF(MONTH(sbc.fecha
)=12, sbc.CantidadCompras
, 0)) 'DiciembreC', SUM(sbc.CantidadVentas
) 'Total Ventas', SUM(sbc.CantidadCompras
) 'Total Compras' c.precio precioCompra,
c.fecha,
c.cantidad
as "CantidadCompras", v.fecha,
v.cantidad
as "CantidadVentas"
No es compleja es una consulta sobre una subconsulta (sbc) que a su vez es una union de consultas.
SELECT .... FROM (SELECT... UNION ALL SELECT...) as sbc WHERE... GROUP BY....
Ahora funcionará....he cambiado v.fecha por sbc.fecha en el primer select ....
El precio medio debe ser ponderado.... SUMA(precio*cantidad)/SUMA(cantidad).