• Okay - as Craig was posting his reply (thank you very much) I wrote my first CTE!!! - I created a string (thinking I might be able to use in multi-level BOMs?) that adds the parent to the child.

    With IndentedBOM(ItemNumber, Component, Sorting, Level1, Quantity)

    As

    (

    Select Parent, Child, Cast(RTrim(Parent) + '--'+ Child As Varchar(Max)) Sorting, 1 Level1, Cast(BOMQUANTITY As INT) Quantity

    From

    (

    Select Parent, Child, BOMQUANTITY

    From Table1

    Where BOMTYPE = 1

    ) A

    Union All

    Select Parent, Component, Cast(Rtrim(Parent)+'--'+Sorting As Varchar(Max)) Sorting, Level1+1, Cast(B.BOMQUANTITY As INT) * Cast(C.Quantity As INT) Quantity

    From

    (

    Select Parent, Child, BOMQUANTITY

    From Table1

    Where BOMTYPE = 1

    ) B

    Join IndentedBOM C on B.Child = C.ItemNumber

    )

    SELECT * FROM IndentedBom

    ORDER BY LEVEL1

    This returns a Parent, Child, Sorting (string combining) Level1 and QUANTITY.

    I will test Craigs solution for a multi-level bom.............

    Thanks Craig and Lynn for your input...........hopefully I can learn something today.....last knowledge of 2012!