我是SQL的新手,并且一直在为旁边业务开发库存跟踪系统。我使用PHP,MySQL和HTML开发了它。我开发了几个功能,可以让我做一些整洁的事情。我一直坚持要弄清楚如何计算一个单元的价格,一旦组装完成,它就由多个组件组成。
目前,我有2张桌子,希望能帮助我拿出最终的价格数字。
Material_Inventory
PRODUCT_ID (PK) | Quantity | Last Entry
此表可帮助我跟踪库存中每个组件的数量,并跟踪产品上次添加的时间
Orders
Order_ID | Product_ID | Item_quantity | Unit_price
此表可帮助我跟踪每个订单的每个单独组件的单价。我同样“按订单”,因为组件的价格可能因订单而异。
尝试计算最终构建单元的价格(组件a +组件b +组件c)。我很难搞清楚如何计算最终价格。这是我遇到的问题:
非常欢迎任何建议或任何形式的反馈。
非常感谢您的时间!
欢呼声
答案 0 :(得分:0)
你的意思是产品价格是先进先出法(先进先出)还是平均?这是您如何计算平均方法的产品价格:
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
答案 1 :(得分: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;