• I bludgeoned this to death with a subquery that returns the correct results as follows:

    SELECT M.BoMWOID, m1.BoMTotMaterialEstimate,

    CAST(SUM(D.BoMItemUnitLaborHrs * D.BoMLaborComplexity * D.BoMEItemQty) AS money) AS BoMTotLaborHrsEstimate,

    CAST(SUM(D.BoMItemUnitLaborHrs * D.BoMLaborComplexity * D.BoMEItemQty * DI.BudgetHourlyRate) AS money) AS BoMTotLaborCostEstimate,

    CAST((sum(D.BoMItemUnitLaborHrs * D.BoMLaborComplexity * D.BoMEItemQty * DI.BudgetHourlyRate) + M1.BoMTotMaterialEstimate) AS money)

    AS BoMTotCostEstimate

    FROM dbo.tblBoM AS M INNER JOIN

    dbo.tblBoMDetail AS D ON M.BoMID = D.BoMID INNER JOIN

    dbo.tblWorkOrders AS WO ON M.BoMWOID = WO.ID INNER JOIN

    dbo.tblDiscipline AS DI ON WO.WODiscipline = DI.ID LEFT JOIN

    (select BoMWOID,sum(BoMEstimatedMaterialCost) AS BoMTotMaterialEstimate from tblBoM Group By BoMWOID) as M1 on M.BoMWOID=M1.BoMWOID

    Attached is an image of the table structures and relationships:

    GROUP BY M.BoMWOID, m1.BoMTotMaterialEstimate

    Is this the best approach?

    Jim