This is how you start out giving sample data so people here can easely start helping you:DECLARE @Shop TABLE (Shop_id int, Name varchar(30))DECLARE @Personnel TABLE (Personnel_id int, Name varchar(30), Work_id int)DECLARE @Purchase TABLE (Salesperson_id int, Cd_id int)DECLARE @Cd TABLE (Cd_id int, Price decimal(8,2))INSERT @Shop (Shop_id, Name)SELECT 1, 'Little shop of CDs' UNION ALLSELECT 2, 'My big fat Greek CD shop' UNION ALLSELECT 3, 'The no go CD shop'INSERT @Personnel (Personnel_id, Name, Work_id)SELECT 1, 'Van the Man', 1 UNION ALLSELECT 2, 'Peter', 1 UNION ALLSELECT 3, 'Paul', 2 UNION ALLSELECT 4, 'Mary', 2INSERT @Purchase (Salesperson_id, Cd_id)SELECT 1, 1 UNION ALLSELECT 1, 2 UNION ALLSELECT 2, 2 UNION ALLSELECT 2, 2 UNION ALLSELECT 3, 1 UNION ALLSELECT 3, 1 UNION ALLSELECT 4, 1 UNION ALLSELECT 4, 1INSERT @Cd (Cd_id, Price)SELECT 1, 4.99 UNION ALLSELECT 2, 9.99
and then Peso (and maybe some others) will quickly come up with something like:SELECT S.Name, DP.Name, DS.MaxTotalSaleFROM @Shop SLEFT OUTER JOIN( SELECT iD.Work_id, MAX(TotalSale) MaxTotalSale FROM ( SELECT P.Work_id, SUM(C.Price) AS TotalSale FROM @Personnel P INNER JOIN @Purchase B ON B.Salesperson_id = P.Personnel_id INNER JOIN @Cd C ON C.Cd_id = B.Cd_id GROUP BY P.Work_id, P.Personnel_id ) iD GROUP BY iD.Work_id) DSON DS.Work_id = S.Shop_idLEFT OUTER JOIN ( SELECT P.Personnel_id, P.Name, SUM(C.Price) TotalSale FROM @Personnel P INNER JOIN @Purchase B ON B.Salesperson_id = P.Personnel_id INNER JOIN @Cd C ON C.Cd_id = B.Cd_id GROUP BY P.Personnel_id, P.Name) DPON DP.TotalSale = DS.MaxTotalSale
ResultName Name MaxTotalSale------------------------------ ------------------------------ ---------------------------------------Little shop of CDs Peter 19.98My big fat Greek CD shop Paul 9.98My big fat Greek CD shop Mary 9.98The no go CD shop NULL NULL
-- Alice came to a fork in the road. "Which road do I take?" she asked. "Where do you want to go?" responded the Cheshire cat. "I don't know," Alice answered. "Then," said the cat, "it doesn't matter."