none
Como hacer esta "media" RRS feed

  • Pregunta

  • Buenas tengo una tabla donde guardo las cabeceras de un albarán y en otra donde guardo las lineas de dichos albaranes.

    Un ejemplo de las lineas de albarán seria como esta

    Como veréis tengo un campo donde guardo las unidades "udsArticulo" y otro campo "pvo" , me gustaria poder sacar una media del campo pvo teniendo en cuenta las uds , es decir en este caso que tengo me gustaria que hiciese esto :

    - 1 uds *4€ + 100 uds *80 = (4+8000) / 101 ==> media de 79,24

    Yo conozco la función avg , pero si hago esta sentencia el resultado que me devuelve es 42 ya que la operación que debe hacer es (4+80) / 2 = 42

    Select avg(pvo) as pmc from AlbaranesLinias A where  a.udsArticulo > 0 and a.codigoArticulo=2  and a.proveedorAlbaran=101

    Gracias

    domingo, 11 de octubre de 2015 16:44

Respuestas

  • Hola golfgti6,

    Para hallar la media aritmética te sirve la función AVG() pero en tu caso no es una media lo que requieres, deberás hacer lo siguiente:

    SELECT 
            SUM(udsArticulo * pvo) / SUM(udsArticulo) AS pmc 
    FROM 
            AlbaranesLinias A 
    WHERE  
            A.udsArticulo > 0 
            AND A.codigoArticulo = 2  
            AND A.proveedorAlbaran = 101




    domingo, 11 de octubre de 2015 17:05

Todas las respuestas

  • Hola golfgti6,

    Para hallar la media aritmética te sirve la función AVG() pero en tu caso no es una media lo que requieres, deberás hacer lo siguiente:

    SELECT 
            SUM(udsArticulo * pvo) / SUM(udsArticulo) AS pmc 
    FROM 
            AlbaranesLinias A 
    WHERE  
            A.udsArticulo > 0 
            AND A.codigoArticulo = 2  
            AND A.proveedorAlbaran = 101




    domingo, 11 de octubre de 2015 17:05
  • Hola golfgti6,

    Para hallar la media aritmética te sirve la función AVG() pero en tu caso no es una media lo que requieres, deberás hacer lo siguiente:

    SELECT 
            SUM(udsArticulo * pvo) / SUM(udsArticulo) AS pmc 
    FROM 
            AlbaranesLinias A 
    WHERE  
            A.udsArticulo > 0 
            AND A.codigoArticulo = 2  
            AND A.proveedorAlbaran = 101




    Muchas gracias  ,estaba ofuscado y no vi como poner esa división entre los articulos

    Gracias !!!!

    lunes, 12 de octubre de 2015 9:25