SQLUSA.com
SQL SERVER 2008 GRAND SLAM
FREE TRIAL  CLICK HERE TO ORDER  SEARCH
SQL JOBS SQL Server Training Scripts JOB BANK
  SQL Server 2008 Training Scripts  
  SQL Server 2005 Training Scripts  
News SQL Server Articles SQL Format

How to prepare a BOM assembly report for all products?

Ken Sanchez, CEO of AdventureWorks Cycles asked you (the DBA, lead developer) to prepare a bill-of-materials (BOM) assembly report for all priced products. The product management team is going to have an offsite meeting at the Sunrise Lodge on Mount Rainier to streamline production in order to increase profit margin. You have to use a recursive CTE since some of the components require assembly as well.

USE AdventureWorks;

GO

WITH cteParts(AssembledProduct, AssemblyID, ComponentID, PerAssemblyQty, ComponentLevel) AS

(

    SELECT AssembledProduct = p.Name, b.ProductAssemblyID, b.ComponentID,

         b.PerAssemblyQty,

        1 AS ComponentLevel

    FROM Production.BillOfMaterials AS b

    INNER JOIN Production.Product p

    on p.ProductID = b.ProductAssemblyID

    WHERE ListPrice > 0.0

          AND b.EndDate IS NULL

    UNION ALL

    SELECT AssembledProduct, bom.ProductAssemblyID,

           bom.ComponentID, p.PerAssemblyQty,

           ComponentLevel + 1

    FROM Production.BillOfMaterials AS bom

        INNER JOIN cteParts AS p

        ON bom.ProductAssemblyID = p.ComponentID

        AND bom.EndDate IS NULL

)

SELECT      AssembledProduct,

            AssemblyItem=pr1.Name,

            ComponentName=pr.Name,

            ComponentLevel,

            PerAssemblyQty = CONVERT(int, PerAssemblyQty),

            Color = coalesce(pr.Color, ''),

            Weight = coalesce(convert(varchar,pr.Weight) +' '+

                     pr.WeightUnitMeasureCode,'')

FROM cteParts AS p

    INNER JOIN Production.Product AS pr

    ON p.ComponentID = pr.ProductID

    INNER JOIN Production.Product AS pr1

    ON p.AssemblyID = pr1.ProductID

ORDER BY AssembledProduct, ComponentLevel, AssemblyID, ComponentID;

GO

 

 

Partial Results:

AssembledProduct AssemblyItem ComponentName ComponentLevel PerAssemblyQty Color Weight
Front Derailleur Front Derailleur Front Derailleur Cage 1 1 Silver
Front Derailleur Front Derailleur Front Derailleur Linkage 1 1 Silver
HL Bottom Bracket HL Bottom Bracket BB Ball Bearing 1 10
HL Bottom Bracket HL Bottom Bracket HL Shell 1 1
HL Bottom Bracket BB Ball Bearing Bearing Ball 2 10
HL Bottom Bracket BB Ball Bearing Lock Ring 2 10 Silver
HL Bottom Bracket BB Ball Bearing Cup-Shaped Race 2 10
HL Bottom Bracket BB Ball Bearing Cone-Shaped Race 2 10
HL Crankset HL Crankset HL Crankarm 1 2 Black
HL Crankset HL Crankset Chainring Bolts 1 3 Silver
HL Crankset HL Crankset Chainring Nut 1 3 Silver
HL Crankset HL Crankset Chainring 1 3 Black
HL Crankset HL Crankset Freewheel 1 1 Silver
HL Fork HL Fork Blade 1 2
HL Fork HL Fork Fork End 1 2
HL Fork HL Fork Fork Crown 1 1
HL Fork HL Fork Steerer 1 1
HL Fork Blade Metal Sheet 5 2 2
HL Fork Fork End Metal Sheet 2 2 2
HL Fork Fork Crown Metal Sheet 5 2 1
HL Fork Steerer Metal Sheet 6 2 1
HL Headset HL Headset Adjustable Race 1 1
HL Headset HL Headset Headset Ball Bearings 1 8
HL Headset HL Headset Crown Race 1 1
HL Headset HL Headset Keyed Washer 1 1
HL Headset HL Headset Lock Nut 19 1 1
HL Headset HL Headset Lower Head Race 1 1
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Chain Stays 1 2
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Decal 1 1 2
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Decal 2 1 1
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Down Tube 1 1
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Head Tube 1 1
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Paint - Black 1 8
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Seat Stays 1 4
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Seat Tube 1 1
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 Top Tube 1 1
HL Mountain Frame - Black, 38 HL Mountain Frame - Black, 38 HL Fork 1 1
HL Mountain Frame - Black, 38 Chain Stays Metal Sheet 5 2 2
HL Mountain Frame - Black, 38 Down Tube Metal Sheet 3 2 1
HL Mountain Frame - Black, 38 Head Tube Metal Sheet 4 2 1
HL Mountain Frame - Black, 38 Seat Stays Metal Sheet 7 2 4
HL Mountain Frame - Black, 38 Seat Tube Metal Bar 2 2 1
HL Mountain Frame - Black, 38 Top Tube Metal Sheet 2 2 1
HL Mountain Frame - Black, 38 HL Fork Blade 2 1
HL Mountain Frame - Black, 38 HL Fork Fork End 2 1
HL Mountain Frame - Black, 38 HL Fork Fork Crown 2 1
HL Mountain Frame - Black, 38 HL Fork Steerer 2 1
HL Mountain Frame - Black, 38 Blade Metal Sheet 5 3 1
HL Mountain Frame - Black, 38 Fork End Metal Sheet 2 3 1
HL Mountain Frame - Black, 38 Fork Crown Metal Sheet 5 3 1
HL Mountain Frame - Black, 38 Steerer Metal Sheet 6 3 1
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Chain Stays 1 2
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Decal 1 1 2
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Decal 2 1 1
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Down Tube 1 1
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Head Tube 1 1
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Paint - Black 1 8
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Seat Stays 1 4
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Seat Tube 1 1
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 Top Tube 1 1
HL Mountain Frame - Black, 42 HL Mountain Frame - Black, 42 HL Fork 1 1
HL Mountain Frame - Black, 42 Chain Stays Metal Sheet 5 2 2
HL Mountain Frame - Black, 42 Down Tube Metal Sheet 3 2 1
HL Mountain Frame - Black, 42 Head Tube Metal Sheet 4 2 1
HL Mountain Frame - Black, 42 Seat Stays Metal Sheet 7 2 4
HL Mountain Frame - Black, 42 Seat Tube Metal Bar 2 2 1
HL Mountain Frame - Black, 42 Top Tube Metal Sheet 2 2 1
HL Mountain Frame - Black, 42 HL Fork Blade 2 1
HL Mountain Frame - Black, 42 HL Fork Fork End 2 1
HL Mountain Frame - Black, 42 HL Fork Fork Crown 2 1
HL Mountain Frame - Black, 42 HL Fork Steerer 2 1
HL Mountain Frame - Black, 42 Blade Metal Sheet 5 3 1
HL Mountain Frame - Black, 42 Fork End Metal Sheet 2 3 1
HL Mountain Frame - Black, 42 Fork Crown Metal Sheet 5 3 1
HL Mountain Frame - Black, 42 Steerer Metal Sheet 6 3 1
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Chain Stays 1 2
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Decal 1 1 2
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Decal 2 1 1
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Down Tube 1 1
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Head Tube 1 1
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Paint - Black 1 8
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Seat Stays 1 4
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Seat Tube 1 1
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 Top Tube 1 1
HL Mountain Frame - Black, 44 HL Mountain Frame - Black, 44 HL Fork 1 1
HL Mountain Frame - Black, 44 Chain Stays Metal Sheet 5 2 2
HL Mountain Frame - Black, 44 Down Tube Metal Sheet 3 2 1
HL Mountain Frame - Black, 44 Head Tube Metal Sheet 4 2 1
HL Mountain Frame - Black, 44 Seat Stays Metal Sheet 7 2 4
HL Mountain Frame - Black, 44 Seat Tube Metal Bar 2 2 1
HL Mountain Frame - Black, 44 Top Tube Metal Sheet 2 2 1
HL Mountain Frame - Black, 44 HL Fork Blade 2 1
HL Mountain Frame - Black, 44 HL Fork Fork End 2 1
HL Mountain Frame - Black, 44 HL Fork Fork Crown 2 1
HL Mountain Frame - Black, 44 HL Fork Steerer 2 1
HL Mountain Frame - Black, 44 Blade Metal Sheet 5 3 1
HL Mountain Frame - Black, 44 Fork End Metal Sheet 2 3 1
HL Mountain Frame - Black, 44 Fork Crown Metal Sheet 5 3 1
HL Mountain Frame - Black, 44 Steerer Metal Sheet 6 3 1
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Chain Stays 1 2
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Decal 1 1 2
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Decal 2 1 1
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Down Tube 1 1
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Head Tube 1 1
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Paint - Black 1 8
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Seat Stays 1 4
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Seat Tube 1 1
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 Top Tube 1 1
HL Mountain Frame - Black, 46 HL Mountain Frame - Black, 46 HL Fork 1 1
HL Mountain Frame - Black, 46 Chain Stays Metal Sheet 5 2 2

 

Order SQL 2008 GRAND SLAM Today!
SQLUSA.com Home Page
SQL Server Training at www.sqlusa.com.
SQL Server 2008 Video Training at www.sqlusa.com.
SQL Server 2005 Training Videos at www.sqlusa.com.
Microsoft SQL Server 2000 Training Videos at www.sqlusa.com.

FREE SQL & Business Intelligence / OLAP Short Videos on YOUTUBE.com

Microsoft Community Contributor 2011
Invest in Your SUCCESS!

Search SQLUSA FREE SQL Server Articles & FREE T-SQL Scripts


Copyright 2005-2011, SMI Corp. All Rights Reserved.

SQL Server 2012 is a program product of Microsoft Corporation.
SQL Server 2008 is a program product of Microsoft Corporation.
SQL Server 2005 is a program product of Microsoft Corporation.
SQL Server 2000 is a program product of Microsoft Corporation.