SELECT People.cID,; MAX(LName) AS LName,; MAX(FName) AS FName,; MAX(IIF(Phones.Type=='Home' , Phone, CAST([] AS C(??))) AS Home,; MAX(IIF(Phones.Type=='Office', Phone, CAST([] AS C(??))) AS Office,; MAX(IIF(Phones.Type=='Cell' , Phone, CAST([] AS C(??))) AS Cell,; .... FROM People; INNER JOIN Phones ON People.cId == Phones.cId; GROUP BY People.cIDThat wold give you only one contact per person, but I read Naomi's quest to have one person with seveveral contact possibilities. Adding phones under a different alias in 1 join for each contact type should resolve at least that, but if a person has 2 cell phones, this info would still be lost.