Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/08/2007, 23:48
joaquintopiso
 
Fecha de Ingreso: agosto-2007
Mensajes: 1
Antigüedad: 16 años, 8 meses
Puntos: 0
Consulta super chunga Mysql

Hola,
aunque suelo entrar en el foro y leeros, nunca antes había posteado. Os escribo para consultaros una consulta que no soy capaz de crear o de calcular. He buscado en el foro y en internet y tampoco encuentro nada.

He creado una base de datos con información sobre una cartera de acciones, en la que voy anotando todas las acciones que compro o vendo, con su fecha y precio.

El problema lo tengo en que cuando quiero calcular el precio medio de las acciones, pero teniendo en cuenta que las que ya vendí no quiero que las tenga en cuenta en el precio medio.

Os pongo un ejemplo para intentar aclarar un poco más el tema:
Supongamos que compro las siguientes acciones:
01/01/2007 100 Acciones Endesa a 10€ cada una.
02/01/2007 100 Acciones Endesa a 20€ cada una.

Si uso AVG() para calcular la media, me dará:
200 Acciones Endesa a 15€ cada una, lo cual es correcto

Pero si vendo algunas acciones:
03/01/2007 100 Acciones Endesa a 30€ cada una.

Quiero que sea una cola (FIFO), es decir que las acciones que venda, "cancelen" a las primeras acciones que compré. En esta caso, lo que debería devolverme es que el precio medio es 20 €, y es lo que no se cómo hacer.

Si lo hago con AVG(), obviamente me devolverá que las acciones valen 0 € por acción (100*10€ + 100*20€ - 100*30€)/100 = 0 €, ya que no considera que es una cola.

¿Se puede hacer esto de alguna manera? ¿Es mejor hacerlo desde PHP?

Muchas gracias por vuestra ayuda.