簡體   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