Hi Eric,
Your first query should ideally work. Please try the below one and let me know if it works.
select count(r.Name), u.Name from ariba.user.core.User u
left outer join ariba.user.core.Role r using u."Roles"
where r.UniqueName in ('Contract Manager','Overseas User')
group by u.Name
having count(r.Name)=2
Regards
Shaaer