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

时间:2015-10-10 05:11:05

标签: mysql

UML Diagram

这是我的数据库设计。我计划通过从Order_LineQuantity中减去Component_UsedQuantity.来计算视图中的组件数量。我遇到的问题肯定是基本的,但我当前的观点不起作用,因为它总结了所有{ {1}}来自所有组件,同样来自Order_LineQuantities,而不是为每个组件提供适当的差异/数量。

Component_UsedQuantities

如何为每个不同的组件ID获取适当的数量?

1 个答案:

答案 0 :(得分:0)

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

这是 Table1- Order_Line

的模型

enter image description here

以下是 Table2- Component_Used 的模型 enter image description here

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

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

我使用组件表中的ComponentID链接了这个。

enter image description here

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

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

enter image description here