다음을 통해 공유


제조 시나리오

이 항목에서는 AdventureWorks 예제 데이터베이스에 표시되어 있는 Adventure Works Cycles 제조 정보, 제조 관련 테이블 목록 및 공통 테이블 관계를 보여 주는 예제 쿼리에 대해 설명합니다.

제조 개요

AdventureWorks 예제 데이터베이스에서 테이블은 다음과 같은 일반적인 제조 영역을 지원하는 데 사용됩니다.

  • 제조 과정

    • 제품 구성 정보(BOM): 다른 제품에 사용되거나 포함된 제품 나열

    • 작업 주문: 업무 센터에서 지시한 제조 주문

    • 위치: 골조 성형, 페인트 및 부속품 등의 주요 제조 및 재고 영역 정의

    • 업무 센터의 제조 및 제품 조립 지침

  • 제품 재고: 창고나 제조 영역의 실제 제품 위치 및 해당 영역에서 사용할 수 있는 수량

  • 엔지니어링 설명서: 자전거나 자전거 구성 요소에 대한 기술 사양 및 유지 관리 설명서

제조 테이블

다음 표에서는 제조 테이블에 저장되는 데이터에 대해 간략히 설명합니다.

스키마.테이블

포함된 내용 유형

설명

Production.BillOfMaterials

자전거 및 자전거 부속품을 제조하는 데 사용되는 모든 구성 요소 목록

해당 제품을 구성하는 구성 요소 및 부모 제품 간의 관계를 나타내는 제품 구성 정보(BOM) 구조는 기본적으로 재귀적 관계에 있습니다. 예를 들어 부모 제품이 자전거인 경우 바퀴 어셈블리는 첫 번째 수준의 구성 요소가 될 수 있습니다. 바퀴 어셈블리에는 반사경, 바퀴 테, 바퀴 살, 타이어 및 타이어 튜브 등의 구성 요소가 포함됩니다.

ProductAssemblyID 열은 부모(또는 주요) 제품을 나타내고 ComponentID 열은 부모 어셈블리를 제조하는 데 사용된 자식(또는 개별) 부품을 나타냅니다.

BOM_Level 열은 ProductAssemblyID에 대한 ComponentID의 수준을 나타냅니다. 위 예에서 바퀴 어셈블리의 BOM_Level은 1이고 바퀴 어셈블리 구성 요소의 BOM_Level은 2가 될 수 있습니다.

Production.Document

엔지니어링 사양 및 기타 기술 설명서

DocumentSummary 열에는 varchar(max) 데이터 형식이 사용됩니다. Document 열에는 varbinary(max) 데이터 형식이 사용됩니다.

Production.Illustration

자전거 제조 도면

이 도면은 ProductModel 테이블에 들어 있는 제조 지침에서 렌더링됩니다. 이 열에는 xml 데이터 형식이 사용됩니다.

Production.Location

제품 및 부품이 제조되거나 재고로 저장되는 Adventure Works Cycles 내의 재고 및 제조 영역 목록. 예를 들어 페인트는 창고의 페인트 저장소와 자전거 골조를 칠하는 제조 업무 센터인 페인트 샵에 보관됩니다.

 

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 failed' 폐기 이유는 페인트 업무 센터에서 페인트가 올바르게 건조되지 않은 자전거 골조를 거부하는 데 사용됩니다.

WorkOrderRouting 테이블은 제품별로 폐기된 수량과 폐기 이유를 추적하는 데 사용됩니다.

문제의 심각도에 따라 제품을 다음 업무 센터로 이동하기 전에 수리하거나 교체해야 합니다.

Production.WorkOrder

현재와 향후 판매량을 충족하기 위해 제조해야 하는 제품 및 수량을 정의합니다.

 

Production.WorkOrderRouting

각 작업 주문의 세부 정보. 여기에는 제조나 조립 과정에서 제품이 각 업무 센터로 전달되는 순서가 포함됩니다. 예를 들어 골조 성형 업무 센터에서 제조되는 자전거 핸들은 추가 작업을 위해 골조 용접 업무 센터로 전달된 다음 부속품 조립 업무 센터로 이동하여 자전거 골조에 부착됩니다.

 

다음 쿼리를 사용하여 제조 및 제품 데이터를 확인할 수 있으며 제조 테이블 관계를 살펴볼 수 있습니다.

1. 부모 제품의 다중 수준 제품 구성 정보(BOM) 보기

다음 예에서는 부모 제품 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

2. 제품 재고 보기

다음 예에서는 각 제품에 사용할 수 있는 재고 수량이 위치별로 나열됩니다. 제품은 여러 위치에 있을 수 있습니다.

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

3. 제품별 작업 주문 보기

다음 예에서는 모든 작업 주문이 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