SQL - Calculo del precio medio ponderado

 
Vista:
Imágen de perfil de Pelidas

Calculo del precio medio ponderado

Publicado por Pelidas (3 intervenciones) el 26/07/2023 01:35:25
Hola a todos

Tengo en SQL 2019 las siguientes tablas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
DECLARE @Inventario TABLE(
      Fecha date DEFAULT '01/07/2023',
      Articulo varchar(3) DEFAULT('AAA'),
      Existencia INT,
      Precio NUMERIC(8, 4)
    );
    INSERT INTO @Inventario (Existencia,Precio)
    	VALUES(15,10.50)
 
    DECLARE @Diario TABLE(
      Id INT IDENTITY,
      Fecha	DATE,
      Articulo varchar(5) DEFAULT('AAA'),
      Tipo_ES INT, -- 0: Entradas	1:Salidas
      Cantidad INT,
      Precio NUMERIC(8, 2)
    );
 
    INSERT @Diario(Fecha,Tipo_ES, Cantidad, Precio)
      VALUES ('02/07/2023',0, 42, 10.70),
             ('02/07/2023',0, 42, 10.80),
             ('03/07/2023',0, 40, 11.00),
             ('03/07/2023',1, -5, 11.00),
             ('04/07/2023',1, -1, 11.00),
             ('05/07/2023',1, -30, 11.00),
             ('06/07/2023',0, 20, 10.50),
             ('06/07/2023',1, -10, 10.50);

Quiero calcular el PMP donde las existencias iniciales son las existencias del ultimo inventario anterior a la fecha del movimiento de almacen a partir del cual quiero empezar a hacer el cálculo así el primer calculo sería

Para Id=1
-------------------------------------------------------------------------------
Ultima existencia X ultimo precio:
15X10.50=157.50

Primera entrada Id=1 el 02/07/2023
42X10.70=449.4

Valor en inventario+valor primer movimiento dividido por existencia final
(157.50+449.4)/(15+42)

luego para el Id=1 el precio ponderado sería:
PMP=606.9/57=10.64

Para Id=2
---------------------------------------------------------------------------
(15X10.50) + (42X10.70) + (42X10.80)=1060.5

15+42+42=99

PMP=1060.5/99=10.71

y así sucesivamente. He probado con LEAD, LAG, ORDER BY ROWS UNBOUNDED PRECEDING y no logro encontrar la solución, ¿ me podéis ayudar ?

Muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Calculo del precio medio ponderado

Publicado por Isaias (1921 intervenciones) el 26/07/2023 16:46:52
Checa esta liga:

https://es.stackoverflow.com/questions/319313/calcular-promedio-ponderado-de-costo-de-productos-con-cantidad-previa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Pelidas

Calculo del precio medio ponderado

Publicado por Pelidas (3 intervenciones) el 27/07/2023 10:23:22
Muchas gracias Isaias por tu respuesta y sugerencia pero el ejemplo no me sirve pues calcula el PMP al final de todos los movimientos y yo lo necesito línea a línea para según las entradas ir calculando el valor que tengo en mercancías, saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Calculo del precio medio ponderado

Publicado por Isaias (1921 intervenciones) el 27/07/2023 16:13:24
Pues a buscarle en GOOGLE, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar