Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/01/2013, 07:56
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Compras y Ventas en la misma consulta

Código MySQL:
Ver original
  1. SELECT sbc.codigo, sbc.nombre,
  2.                 ROUND(AVG(sbc.precioVenta), 2) 'Media Ventas',
  3.                 ROUND(AVG(sbc.precioCompra), 2) 'Media Compras',
  4.                 SUM(IF(MONTH(v.fecha)=1, sbc.CantidadVentas, 0)) 'EneroV',
  5.                 SUM(IF(MONTH(v.fecha)=1, sbc.CantidadCompras, 0)) 'EneroC',
  6.                 SUM(IF(MONTH(v.fecha)=2, sbc.CantidadVentas, 0)) 'FebreroV',
  7.                 SUM(IF(MONTH(v.fecha)=2, sbc.CantidadCompras, 0)) 'FebreroC',
  8.                 SUM(IF(MONTH(v.fecha)=3, sbc.CantidadVentas, 0)) 'MarzoV',
  9.                 SUM(IF(MONTH(v.fecha)=3, sbc.CantidadCompras, 0)) 'MarzoC',
  10.                 SUM(IF(MONTH(v.fecha)=4, sbc.CantidadVentas, 0)) 'AbrilV',
  11.                 SUM(IF(MONTH(v.fecha)=4, sbc.CantidadCompras, 0)) 'AbrilC',
  12.                 SUM(IF(MONTH(v.fecha)=5, sbc.CantidadVentas, 0)) 'MayoV',
  13.                 SUM(IF(MONTH(v.fecha)=5, sbc.CantidadCompras, 0)) 'MayoC',
  14.                 SUM(IF(MONTH(v.fecha)=6, sbc.CantidadVentas, 0)) 'JunioV',
  15.                 SUM(IF(MONTH(v.fecha)=6, sbc.CantidadCompras, 0)) 'JunioC',
  16.                 SUM(IF(MONTH(v.fecha)=7, sbc.CantidadVentas, 0)) 'JulioV',
  17.                 SUM(IF(MONTH(v.fecha)=7, sbc.CantidadCompras, 0)) 'JulioC',
  18.                 SUM(IF(MONTH(v.fecha)=8, sbc.CantidadVentas, 0)) 'AgostoV',
  19.                 SUM(IF(MONTH(v.fecha)=8, sbc.CantidadCompras, 0)) 'AgostoC',
  20.                 SUM(IF(MONTH(v.fecha)=9, sbc.CantidadVentas, 0)) 'SeptiembreV',
  21.                 SUM(IF(MONTH(v.fecha)=9, sbc.CantidadCompras, 0)) 'SeptiembreC',
  22.                 SUM(IF(MONTH(v.fecha)=10, sbc.CantidadVentas, 0)) 'OctubreV',
  23.                 SUM(IF(MONTH(v.fecha)=10, sbc.CantidadCompras, 0)) 'OctubreC',
  24.                 SUM(IF(MONTH(v.fecha)=11, sbc.CantidadVentas, 0)) 'NoviembreV',
  25.                 SUM(IF(MONTH(v.fecha)=11, sbc.CantidadCompras, 0)) 'NoviembreC',
  26.                 SUM(IF(MONTH(v.fecha)=12, sbc.CantidadVentas, 0)) 'DiciembreV',
  27.                 SUM(IF(MONTH(v.fecha)=12, sbc.CantidadCompras, 0)) 'DiciembreC',
  28.                 SUM(sbc.CantidadVentas) 'Total Compras'
  29.                 SUM(sbc.CantidadCompras) 'Total Compras'
  30. SELECT a1.codigo, a1.nombre,
  31.              c.precio precioCompra,
  32.              null as precioVenta,
  33.              c.fecha,
  34.              c.cantidad as "CatidadCompras",
  35.              0 as "CantidadVentas"
  36. FROM articulo a1 INNER JOIN compras c ON a1.claart = c.claart
  37. WHERE YEAR(c.fecha)=2012
  38. SELECT a2.codigo, a2.nombre,
  39.              null as precioCompra,
  40.              v.precio as precioVenta,
  41.              v.fecha,
  42.              0 as "CatidadCompras",
  43.              v.cantidad as "CantidadVentas"
  44. FROM articulo a2 INNER JOIN ventas v ON a2.claart = v.claart
  45. WHERE YEAR(v.fecha)=2012) as Sbc
  46. GROUP BY sbc.codigo;

Algo así?

Mira si hace bien el precio medio.... ojo con el precio medio calculado así ....imagina esta situación



Op.......Precio.....Cantidad
Compra...1...........1
Compra...100.........100
Venta....100.........1
Venta....1...........100


Todo del mismo producto

Precio medio de venta (100+1)/2=50,5
Precio medio de compra (100+1)/2=50,5

Beneficio 0 (Cero)???????

Cuando en realidad estas perdindo vacas y cencerros.

Gastos (1x1)+(100x100)=10001
Ingresos (1x100)+(100x1)=200


Benficio 200-10001=-9801 (negativo)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 16/01/2013 a las 08:14