something like this perhaps:declare @SO table(Rep_Code_so int, Amount int, SO_Date date)insert into @so(Rep_Code_so, Amount, so_date) values--Rep Code SO Amount SO Date(1,100,'1/2/2015'),(2,50 ,'2/15/2015'),(3,20 ,'2/20/2015'),(2,50 ,'2/20/2015'),(1,85 ,'2/20/2015')declare @SQ Table(Rep_Code_SQ int, Amount int, SQ_Date date)insert into @sq(Rep_Code_SQ, Amount, SQ_Date) values--Rep Code SQ Amount SQ Date(1, 50, '2/2/2015'),(2, 14, '2/18/2015'),(3, 67, '2/19/2015'),(1, 96, '2/20/2015'),(2, 54, '2/20/2015')declare @INV Table(Rep_Code_INV int, Amount int, INV_date date)insert into @inv(Rep_Code_INV, Amount, INV_date) values-- Rep Code INV Amount INV Date(1, 654,'2/2/2015'),(2, 312,'2/18/2015'),(3, 54 ,'2/19/2015'),(1, 6 ,'2/20/2015'),(3, 48 ,'2/20/2015')select so.Rep_Code_so, so.amount 'SO TOTAL', sq.amount 'SQ Total', inv.amount 'INV Total'from ( select Rep_Code_so, sum(amount) amount from @so so group by Rep_Code_so) socross apply( select Rep_Code_SQ, sum(sq.amount) amount from @sq sq where so.Rep_Code_so = sq.Rep_Code_SQ group by Rep_Code_sq) sqcross apply( select Rep_Code_INV, sum(inv.amount) amount from @inv inv where so.Rep_Code_so = inv.Rep_Code_inv group by Rep_Code_INV) inv