如何计算饮料销售中的产品(构成饮料)的数量?

时间:2013-08-09 11:14:56

标签: sql database oop database-design inventory

我有以下配置:

#purchases
id
date
supplier_id

#purchase_line
product_id
purchase_id
quantity
price

#products
id
name
description
measure

#recipe
product_id
beverage_id
quantity

#beverage
id
description
method

#sale_line
beverage_id
sale_id
quantity
price

#sales
id
date

基本上,销售有很多饮料,每种饮料都是由一定数量的产品制成的。那么,计算每次销售中产品数量的最佳方法是什么?

这是库存控制的一部分,我必须将销售(按产品而非饮料)与购买进行比较。

enter image description here

1 个答案:

答案 0 :(得分:0)

这是否与您所寻找的一致?如果没有,请发布更多信息。下面的查询将销售,销售线,饮料,配方和产品表连接起来,然后根据销售的饮料数量和配方中的数量计算销售数量。我没试过这个。您可以根据需要添加WHERE子句以根据日期,产品等进行限制。

出售数量:

SELECT pr.prod_id
  , pr.prod_name
  , SUM(sl.qty*rc.qty) AS qty_sold 
FROM sales sa JOIN sales_line sl ON sa.sales_id = sl.sales_line_id 
              JOIN beverage bv   ON sl.bev_id = bv.bev_id
              JOIN recipe rc     ON bv.bev_id = rc.bev_id
              JOIN products pr   ON rc.prod_id = pr.prod_id
WHERE ...
GROUP BY pr.prod_id
  , pr.prod_name

购买数量:

SELECT pr.prod_id
  , pr.prod_name
  , SUM(pl.qty) AS qty_purch
FROM purchase pc JOIN purchase_line pl ON pc.purch_id = pl.purch_id
                 JOIN products pr      ON pl.prod_id = pr.prod_id
WHERE ...
GROUP BY pr.prod_id
  , pr.prod_name