繁体   English   中英

mysql库存数据库中的库存数量视图

[英]Stock Quantity view in mysql inventory database

UML图

这是我的数据库设计。 我计划通过从Component_UsedQuantity.减去Order_LineQuantity来计算视图中的Component_UsedQuantity. 我遇到的问题肯定是基本问题,但是我的当前视图不起作用,因为它正在Order_LineQuantities所有组件中的所有Order_LineQuantities ,并且同样使用Component_UsedQuantities进行Order_LineQuantities ,而不是为每个单独的组件提供适当的差异/数量。

Create View Inventory3(ComponentID, quantity) AS
SELECT
DISTINCT(ComponentID) AS ComponentID,
SUM(Order_LineQuantity) - SUM(Component_UsedQuantity) AS quantity
FROM
Component
INNER JOIN
Order_Line ON Order_LineComponentID = ComponentID
INNER JOIN
Component_Used ON Component_UsedComponentID = ComponentID

如何获得每个单独的不同componentID的正确数量?

如果仅使用SUM()函数,它将对表的所有值求和。 如果只想对相关值求和,则必须id对值进行分组,然后对它们求和。 这就是下面的子查询的作用。

这是Table1- Order_Line的模型

在此处输入图片说明

这是Table2- Component_Used的模型 在此处输入图片说明

我只填写了必要的细节。 您可以看到给定组件有多个Order_LineQuantity值。

同样,给定组件的Component_UsedQuantity存在多个值。

我已使用“组件表”中的ComponentID对此进行了链接。

在此处输入图片说明

SELECT ComponentID AS ComponentID,(ordertable.sumorder-componenttable.sumcomponent) as quantity 
FROM Component,
(SELECT Order_LineComponentID as id,SUM(Order_LineQuantity) as sumorder FROM Order_Line GROUP BY Order_LineComponentID)ordertable,
(SELECT Component_UsedComponentID as id,SUM(Component_UsedQuantity) as sumcomponent FROM Component_Used GROUP BY Component_UsedComponentID)componenttable
WHERE
ComponentID=ordertable.id and ComponentID=componenttable.id

现在,当您执行查询时,它将在所有分组操作之后选择所需的详细信息。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM