这是我的数据库设计。我计划通过从Order_LineQuantity
中减去Component_UsedQuantity.
来计算视图中的组件数量。我遇到的问题肯定是基本的,但我当前的观点不起作用,因为它总结了所有{ {1}}来自所有组件,同样来自Order_LineQuantities
,而不是为每个组件提供适当的差异/数量。
Component_UsedQuantities
如何为每个不同的组件ID获取适当的数量?
答案 0 :(得分:0)
如果您只使用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
现在,当您执行查询时,它会在所有分组操作后选择所需的详细信息。