共用方式為


製造業案例

此主題提供 Adventure Works Cycles 製造資訊詳細資料,這些資料是以 AdventureWorks 範例資料庫、製造業相關資料表清單,以及展示一般資料表關係的範例查詢來呈現。

製造業概觀

在 AdventureWorks 範例資料庫內提供的資料表,可以支援下列常見製造相關案例:

  • 製造流程:

    • 用料表:列出產品上所使用或包含的其他產品。

    • 工作順序:工作中心的製造順序。

    • 地點:定義主要的製造及存貨區域,例如骨架組裝、油漆、局部裝配等等。

    • 工作中心提供的製造和產品組裝指示。

  • 產品存貨:倉庫或製造區域內產品的實際存放位置,以及該區域內可用的數量。

  • 工程文件:自行車或自行車零件的技術規格及維修方面的文件。

製造資料表

下列資料表包含製造資料表內儲存之資料的簡短說明。

Schema.Table

包含這種內容

註解

Production.BillOfMaterials

用於製造自行車與自行車子組件之所有元件的清單。

用料表結構中有一個原有的循環關係,指出父產品與組成該產品之元件之間的關聯性。例如,如果父產品是自行車,首先組裝的元件是車輪。車輪組件有自己的元件,例如,反光燈、輪框、輪輻、輪胎和內胎。

ProductAssemblyID 資料行代表父產品或主要產品,而 ComponentID 代表用來組成父組件的子零件或個別零件。

BOM_Level 資料行表示相對於 ProductAssemblyIDComponentID 的層級。在前述範例中,車輪組件的 BOM_Level 可能是 1,而車輪組件之元件的 BOM_Level 可能是 2,依此類推。

Production.Document

工程規格及其他技術文件。

DocumentSummary 資料行使用 varchar(max) 資料類型。Document 資料行使用 varbinary(max) 資料類型。

Production.Illustration

自行車製造的圖解。

圖例是以製造指示呈現,包含於 ProductModel 資料表內。此資料行使用 xml 資料類型。

Production.Location

Adventure Works Cycles 內存貨和製造區域的清單,其中產品和零件當作存貨或組件儲存。例如,油漆儲存在倉庫的 Paint Storage 位置與製造工作中心的 Paint Shop 中,而 Paint Shop 即自行車架上漆所在。

 

Production.Product

有關 Adventure Works Cycles 售出的每一個產品或用於製造 Adventure Works Cycles 自行車與自行車元件的資訊。

FinishedGoodsFlag 資料行指出產品是否已售出。未售出的產品是已售出之產品的元件。例如,自行車會售出,但是用於製作自行車架的鐵板則不會售出。

Production.ProductInventory

產品依位置區分的存貨層級。請參閱前面提到的 Production.Location

 

Production.ProductModel

與產品相關聯的產品型號。例如,Mountain-100 或 LL Touring Frame。

CatalogDescription 資料行包含其他產品資訊,其資料類型為 xml。Instructions 資料行包含產品製造指示,其資料類型為 xml

Production.ScrapReason

製造流程中自行車或自行車零件的常見被拒原因清單。例如,Paint (油漆) 工作中心以 'Paint failed' (油漆不合格) 做為被拒原因,表示自行車車架的上漆處理方式不恰當。

WorkOrderRouting 資料表會記錄被拒的數量,並依產品記錄被拒原因。

根據問題的嚴重程度,必須修正或替換產品,才能將產品送到下一個工作中心。

Production.WorkOrder

定義符合目前及預估銷售所需生產的產品及數量。

 

Production.WorkOrderRouting

每份工作順序的詳細資料;其中包括產品在製造或組裝流程中產品所需經過之工作中心的順序。例如,自行車把手是在 Frame Forming (骨架組裝) 工作中心製造的。接著進入 Frame Welding (骨架熔接) 工作中心繼續作業,然後再進入 Subassembly (局部裝配) 工作中心,鑲嵌到自行車骨架上。

 

範例

您可以使用下列查詢來檢視製造及產品資料,熟悉製造資料表關聯性。

A. 檢視父產品的多層次用料表清單

下列範例顯示用於建立特定父產品的所有元件:ProductAssemblyID.

USE AdventureWorks;
GO
WITH Parts(AssemblyID, ComponentID, PerAssemblyQty, EndDate, ComponentLevel) AS
(
    SELECT b.ProductAssemblyID, b.ComponentID, b.PerAssemblyQty,
        b.EndDate, 0 AS ComponentLevel
    FROM Production.BillOfMaterials AS b
    WHERE b.ProductAssemblyID = 800
          AND b.EndDate IS NULL
    UNION ALL
    SELECT bom.ProductAssemblyID, bom.ComponentID, p.PerAssemblyQty,
        bom.EndDate, ComponentLevel + 1
    FROM Production.BillOfMaterials AS bom 
        INNER JOIN Parts AS p
        ON bom.ProductAssemblyID = p.ComponentID
        AND bom.EndDate IS NULL
)
SELECT AssemblyID, ComponentID, Name, PerAssemblyQty, EndDate,
        ComponentLevel 
FROM Parts AS p
    INNER JOIN Production.Product AS pr
    ON p.ComponentID = pr.ProductID
ORDER BY ComponentLevel, AssemblyID, ComponentID;
GO

B. 檢視產品存貨

在下列範例中,每項產品的可用數量是依存貨地點列出。產品可能位於好幾個地點。

USE AdventureWorks;
GO
SELECT P.Name AS Product, L.Name AS [Inventory Location],
    SUM(PI.Quantity)AS [Qty Available]
FROM Production.Product AS P
    JOIN Production.ProductInventory AS PI ON P.ProductID = PI.ProductID
    JOIN Production.Location AS L ON PI.LocationID = L.LocationID
GROUP BY P.Name, L.Name
ORDER BY P.Name ;
GO

C. 依產品檢視工作順序

在下列範例中,產品的所有工作順序分別列示在子類別目錄 Mountain Bike (越野車) (1)、Road Bike (自行車) (2) 與 Touring Bike (休閒車) (3) 等項。

USE AdventureWorks;
GO
SELECT WorkOrderID, P.Name AS Product, OrderQty, DueDate
FROM Production.WorkOrder W 
    JOIN Production.Product P ON W.ProductID = P.ProductID
WHERE P.ProductSubcategoryID IN (1, 2, 3)
ORDER BY P.Name, DueDate ;
GO