Sql asp

Estoy desarrollando una página web en asp que se conecta a una BD en Access.
Quiero hacer una consulta SQL en la tabla Ventas:
Necesito obtener el precio medio ponderado de un producto en cada mes y año sin tener en cuenta el campo "venfar" que es el código de la farmacia que lo vendió.
Ejemplo:
venfar  venalo  venmes  venart  vencan  venpvp
     1<span style="white-space: pre;"> </span> 10<span style="white-space: pre;"> </span>    10<span style="white-space: pre;"> </span>   2            5           10
     2 10 10 2 4 9
3<span style="white-space: pre;"> </span> 10<span style="white-space: pre;"> </span> 10 2<span style="white-space: pre;"> </span> 6 <span style="white-space: pre;"> </span> 11
necesito sacar la media ponderada de cada mes(del mismo año) del articulo X (en este caso el código del artículo es 2)
<span style="white-space: pre;"> </span>(5*10) + (4*9) + (6*11) / 10 + 9 + 11
Pensé en hacer una consulta por cada mes pero sería muy engorroso y al final tendría que hacer muchísimas de consultas, a ver si existe una forma más fácil de hacerlo...
La base de datos no se puede cambiar, ya que no tengo acceso a ella.

1 respuesta

Respuesta
1
No me queda claro qué quieres decir con: "necesito obtener el precio medio ponderado de un producto en cada mes y año". ¿Ponderado? ¿En base a qué? ¿O simplemente el precio medio en cada mes?
Ésta es una consulta que hice de la tabla ventas
Las tres primeras filas corresponden a las ventas de producto X(se lo paso en la consulta) en el mes 10 del año 10 en tres farmacias diferentes. Cada fila es la venta del mismo producto en una farmacia direferente.
Lo que quiero conseguir es hallar la media ponderada de las ventas de cada mes:
En este ejemplo sería para el mes 10 del año 10 (las 3 primeras filas de la consulta son las ventas en ese mes del producto en 3 farmacias diferentes)
vencan(fila1)*venpvp(fila1) + vencan(fila2)*venpvp(fila2) + vencan(fila3) *venpvp(fila3) dividido entre vencan(fila1) + vencan(fila2) + vencan(fila3)
Podría hacer una consulta por cada mes, pero tendría que usar un montón de recordsets en la página ASP y sería bastante chapuza.
Espero haberme explicado
Si no te entiendo mal, esto te debería servir:
select venalo, venmes,sum(vencan*venpvp)/sum(vencan)
  from far
 group by venalo, venmes;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas