if they run fine, good performance, then leave them alone
i think some of the double EXISTS (if a preference exists and it's one of his, or if a preference doesn't exist) could be replaced by a left outer join
but don't rewrite the queries unless you have a real performnace problem
because then you may end up in a redesign, too
i can't really tell without seeing your data
like i said, if your queries run okay, leave them
rudy