我有以下配置:
#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
基本上,销售有很多饮料,每种饮料都是由一定数量的产品制成的。那么,计算每次销售中产品数量的最佳方法是什么?
这是库存控制的一部分,我必须将销售(按产品而非饮料)与购买进行比较。
答案 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