如何在ms-access中将列的单个元素与表中的整个行相乘?

时间:2019-06-13 04:08:38

标签: sql ms-access database-design ms-office

我正在尝试使用MS Access为面包店制作一个库存管理系统。 商店经理将仅输入他们想要制造的商品的名称和数量。根据经理输入的项目,应以系统的方式生成配料及其数量的列表。 例如, 要制作一个蛋糕,需要2 x成分A,3 x成分B和4 x成分C。 对于一个cookie,我们将需要0.1 x成分C和1 x成分D。 如果经理希望制作2个蛋糕和5个饼干,则必须计算每种成分的量并将其显示在报告中。

我尝试为项目列表制作单独的表格,并为另一个项目制作一个表格,该表格包含制作特定项目所需的成分。但是我不确定如何将Items表列表中的项目与包含其成分表的表相对应的表进行匹配。

1 个答案:

答案 0 :(得分:1)

我认为您应该为此使用EAV(实体,属性,值)方法。

enter image description here

然后,您可以使用此查询获取确定顺序的ingridients列表(以及相应的金额)

    SELECT tblIngridients.sIngridientName, Sum(tblReceipts.fIngridientAmount) AS [Sum-fIngridientAmount]
FROM (tblProducts INNER JOIN tblOrderContents ON tblProducts.iProductID = tblOrderContents.iProductID) INNER JOIN (tblIngridients INNER JOIN tblReceipts ON tblIngridients.iIngridientID = tblReceipts.iIngridientID) ON tblProducts.iProductID = tblReceipts.iProductID
WHERE (((tblOrderContents.iOrderID)=1))
GROUP BY tblIngridients.sIngridientName;

enter image description here