Stored proc returning customers a user cannot support
This will get everything a user is qualified for. Add a TOP 1 and an order by based on priority to get a single request.

select CustomerRequests.customerReference
from CustomerRequests
join userSkills on  userSkills.skillid = CustomerRequests.requestTypeId
and userSkills.userId = 1 --@pinUserId
--join RequestAttributes on RequestTypeId = CustomerRequests.requestTypeId
where requestid not in (
    select CustomerRequests.requestid
    from CustomerRequests
    left outer join userSkills
        on userSkills.skillid = CustomerRequests.requestTypeId
    where userSkills.skillid is null
    )
and CustomerRequests.status = 0