[英]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.