This works for me, from the xxx_PROF database:
SELECT u.NTName , u.PreferredName , u.email, u.manager, u.bDeleted,
MIN( CASE q.PropertyID WHEN 4 THEN a.PropertyVal END ) AS
FirstName ,
MIN( CASE q.PropertyID WHEN 5 THEN a.PropertyVal END ) AS
FirstName ,
MIN( CASE q.PropertyID WHEN 8 THEN a.PropertyVal END ) AS
WorkPhone ,
MIN( CASE q.PropertyID WHEN 18 THEN a.PropertyVal END ) AS
HomePhone ,
MIN( CASE q.PropertyID WHEN 20 THEN a.PropertyVal END ) AS
Fax ,
MIN( CASE q.PropertyID WHEN 8 THEN a.PropertyVal END ) AS
WorkPhone ,
MIN( CASE q.PropertyID WHEN 11 THEN a.PropertyVal END ) AS
Office ,
MIN( CASE q.PropertyID WHEN 13 THEN a.PropertyVal END ) AS
Title,
MIN( CASE q.PropertyID WHEN 14 THEN a.PropertyVal END ) AS
Department ,
MIN( CASE q.PropertyID WHEN 23 THEN a.PropertyVal END ) AS
PictureURL
FROM yourserver.xxxxx_PROF.dbo.UserProfile AS u
JOIN yourserver.xxxxx_PROF.dbo.UserProfileValue As a
ON u.RecordID = a.RecordID
JOIN yourserver.xxxxx_PROF.dbo.PropertyList q
ON q.PropertyID = a.PropertyID
GROUP BY u.NTName , u.PreferredName, u.email, u.manager, u.bDeleted
ORDER BY u.PreferredName