Can anyone tell me what is wrong with this script:
IF @MODE = 'FRIEND-LIST-MANAGE'
DECLARE @TotalPages INT
BEGIN
SELECT @TotalPages = COUNT(*)/@PageSize
FROM Member a
INNER JOIN MemberConnection d ON d.ConnMemberID = a.MemberID
WHERE d.MemberID = @MemberID;
WITH FindMyFriends AS
(
SELECT ROW_NUMBER() OVER(sbuser.sf_DisplayName(a.MemberID) ASC) AS RowNum,
a.MemberID, -- 1
a.UserName, -- 2
a.City, -- 3
b.Abbr, -- 4
b.State, -- 5
c.Country, -- 6
a.AvatarSm, -- 7
a.AvatarMed, -- 8
a.AvatarLg, -- 9
sbuser.sf_MemberHasAudio(a.MemberID) AS HasAudio, -- 10
sbuser.sf_MemberHasVideo(a.MemberID) AS HasVideo, -- 11
sbuser.sf_MemberHasImages(a.MemberID) AS HasImages, -- 12
sbuser.sf_DisplayName(a.MemberID) AS DisplayName, -- 13
a.ProfileTypeID, -- 14
a.LastLogin, -- 15
a.CreateDate -- 16
FROM Member a
LEFT JOIN State b ON b.StateID = a.StateID
INNER JOIN Country c ON c.CountryID = a.CountryID
INNER JOIN MemberConnection d ON d.ConnMemberID = a.MemberID
WHERE d.MemberID = @MemberID
)
SELECT *
FROM FindMyFriends
WHERE RowNum BETWEEN (@PG - 1) * @PageSize AND @PG * @PageSize
ORDER BY sbuser.sf_DisplayName(a.MemberID) ASC
END
SQL server reports:
Msg 102, Level 15, State 1, Procedure sp_memberConnection, Line 117
Incorrect syntax near ‘.’.
Any help would be greatly appreciated…
ROW_NUMBERrequiresORDER BY.Assuming
sbuser.sf_DisplayNameis a UDF I think you would need.This seems like a potentially bad use of UDFs though as it will need to evaluate the UDF for each row in the source data. Can the UDF be replaced with a simple
JOIN?