Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2014, 17:39
Avatar de ManelGomez
ManelGomez
 
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 17 años
Puntos: 2
Calcular campo de promedio

Hola a todos:

La funcion avd calcula el precio medio, pero esta formula esta mal ya que no es lo mismo comprar dos veces la misma cantidad a diferente precio que compras cantidades diferentes a precios distintos.

1 x 100 = 100
25 x 75 = 1875, el precio medio es 75.96 y la forma que calcula la siguiente sentencia sql sale 87.5 por suma los precios y los divide por dos. Y esto no es correcto.

Código SQL:
Ver original
  1. TRANSFORM SUM(lfc.[Uds Servidas]) AS [El valor]
  2. SELECT lfc.Producto AS Articulo, SUM(lfc.[Uds Servidas]) AS Total,
  3. Articulos.Nombre AS NombArti, Avg(lfc.[PVP de la Unidad]) AS MaxPrec,
  4. SUM(lfc.[Importe Neto]) AS TotaArti
  5. FROM ([Lineas Facturacion Compras] AS lfc INNER JOIN [Cabecera Facturacion Compras] AS cfc
  6. ON (lfc.Serie = cfc.Serie) AND
  7. (lfc.Numero = cfc.Numero))
  8. INNER JOIN Articulos ON lfc.Producto = Articulos.Codigo
  9. GROUP BY lfc.Producto, Articulos.Nombre
  10. ORDER BY Articulos.Nombre
  11. PIVOT format([Fecha], 'mmm') IN ('Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic');

He intentado cambiar la funcion avg por (TotaArti / Total), pero nada.

Si alguien sabe se sql


Un saludo.

Última edición por gnzsoloyo; 03/11/2014 a las 17:56 Razón: Código de programacion no permitido en foros de BBDD.