[英]Stock Quantity view in mysql inventory database
这是我的数据库设计。 我计划通过从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的模型
我只填写了必要的细节。 您可以看到给定组件有多个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.