html — MySQL и расчет цены товара в БД

Я новичок в SQL и занимаюсь разработкой системы отслеживания запасов для дополнительного бизнеса. Я разработал его с использованием PHP, MySQL и HTML. Я разработал несколько функций, которые позволят мне делать некоторые изящные вещи. Я застрял, пытаясь понять, как рассчитать цену единицы, состоящей из нескольких компонентов, после ее сборки.

В настоящее время у меня есть 2 таблицы, которые, как я надеялся, помогут мне определить окончательную цену.

Таблица 1: Material_Inventory

PRODUCT_ID (PK) | Quantity | Last Entry

Эта таблица помогает мне отслеживать количество каждого компонента на складе и отслеживает время последнего добавления продукта

Таблица 2: Orders

Order_ID |  Product_ID | Item_quantity | Unit_price

Эта таблица помогает мне отслеживать цену за единицу каждого компонента в заказе. Я такой же «на заказ», потому что цена компонента может отличаться от заказа к заказу.

При попытке вычислить цену окончательно построенной единицы (компонент a + компонент b + компонент c). Мне трудно понять, как рассчитать окончательную цену. Это проблема, с которой я сталкиваюсь:

  • Как я могу учесть изменение цены компонентов?
    — Например, я собираюсь собрать 2 блока. Но компонент A в первой единице имеет цену, отличную от компонента A во второй единице.

Любые предложения или любые отзывы очень приветствуются.

Большое вам спасибо за ваше время!

ура

0

Решение

Вы имели в виду цену товара как методы FIFO («Первый пришел — первый вышел») или «Средняя»? Вот как вы можете рассчитать цену продукта для среднего метода:

select x.product_id, (x.total_price / x.total_quantity) as average_price
(
Select a.product_id as product_id,
sum(b.item_quantity) as total_quantity,
sum(b.unit_price*item_quantity) as total_price
from material_inventory as a inner join orders as b
on a.product_id = b.product.id
group by a.product_id
) as x
0

Другие решения

Я бы выложил свой стол вот так …

Таблица products:

id | name | type | current_price

Таблица orders:

id | user_id | submitted

Таблица order_items:

id | order_id | product_id | locked_in_price | quantity

Настроить таким образом, вы можете установить locked_in_price к продукту current_price когда он впервые добавлен в корзину. Затем, чтобы получить ваши предметы и общее количество, вы бы сделали это …

SELECT *, SUM(locked_in_price * quantity) AS total FROM order_items WHERE order_id = 1;
0

По вопросам рекламы [email protected]