mus
Новичок
Сложный запрос. Логично ли построение этого запроса ЛИШЬ средствами MySQL?
(РАБОТАЕМ С MySQL)
Задача следующая:
Вывести на экран результат вычисления стоимости товара после поступления новой партии на склад по средствам алгоритма вычисления средневзвешенного.
Заказчик всегда должен знать средневзвешенную стоимость товара.
Средневзвешенная стоимость считается так:
( стоимость_товара * остаток на складе + стоимость_товара_в_новой_партии * кол_во_товара_в_новой_партии) / общее_получившееся_кол-во
Например:
01.01 пришла самая первая партия товара Z по цене $10 в кол-ве 10 штук
01.02
остаток (кол-во пришедшего - кол-во проданного) = 5 шт.
цена_товара_Z_в_новой_партии = 15
кол-во_в_новой_партии = 10
Итого = ( 10 * 5 + 15 * 10) / 15 = 13.3
Средневзвешенная на момент 01.02 = 13.3
01.03
остаток = 10
цена_товара_новой_партии = 25
кол-во = 20
Итого = (10 * 13.3 + 25 * 20) / 30 = 21.1
Так вот, среднешвзвешенное хранить не представляется возможным, так как в случае удаления факта закупки (например - удалили вторую запись из пяти) или удаления факта продажи нам придется пересчитывать это значение.
Так вот, чтобы построить такой запрос логично ли использовать ЛИШЬ ресурсы MySQL? И представляется ли возможным вообще без наличия хранимых процедур решить эту задачу с помощью лишь SQL-запроса?
Как осуществить подобие рекурсии для решения этой задачи?
(РАБОТАЕМ С MySQL)
Задача следующая:
Вывести на экран результат вычисления стоимости товара после поступления новой партии на склад по средствам алгоритма вычисления средневзвешенного.
Заказчик всегда должен знать средневзвешенную стоимость товара.
Средневзвешенная стоимость считается так:
( стоимость_товара * остаток на складе + стоимость_товара_в_новой_партии * кол_во_товара_в_новой_партии) / общее_получившееся_кол-во
Например:
01.01 пришла самая первая партия товара Z по цене $10 в кол-ве 10 штук
01.02
остаток (кол-во пришедшего - кол-во проданного) = 5 шт.
цена_товара_Z_в_новой_партии = 15
кол-во_в_новой_партии = 10
Итого = ( 10 * 5 + 15 * 10) / 15 = 13.3
Средневзвешенная на момент 01.02 = 13.3
01.03
остаток = 10
цена_товара_новой_партии = 25
кол-во = 20
Итого = (10 * 13.3 + 25 * 20) / 30 = 21.1
Так вот, среднешвзвешенное хранить не представляется возможным, так как в случае удаления факта закупки (например - удалили вторую запись из пяти) или удаления факта продажи нам придется пересчитывать это значение.
Так вот, чтобы построить такой запрос логично ли использовать ЛИШЬ ресурсы MySQL? И представляется ли возможным вообще без наличия хранимых процедур решить эту задачу с помощью лишь SQL-запроса?
Как осуществить подобие рекурсии для решения этой задачи?