SELECT Ord1.orderid,; Ordsize.orderprodid,; SUM(Ordsize.ordered) AS totordered,; SUM(Ordsize.allocated) AS totallocated,; SUM(Ordsize.shipped) AS totshipped,; Ord1.sbo AS specialord; FROM Ordsize ; INNER JOIN (SELECT ordprod.OrderId, Ordhead.sbo FROM ordprod INNER JOIN ordhead ON Ordprod.orderid = Ordhead.orderid;) Ord1 ON Ord1 ON Ordsize.orderprodid = Ordprod.orderprodid GROUP BY Ordsize.orderprodid, Ord1.orderid, Ord1.sbo; ORDER BY Ordsize.orderprodid WHERE Ordsize.orderprodid > 0 && Assuming you have index based on Ordsize.orderprodid and Ordsize.orderprodid is always bigger than 0 (Zero)