Как сказал Гордан, вы не можете присвоить переменную И вернуть выбор в том же операторе выбора.Лучше всего, если вам нужно назначить локальную переменную, - просто выбросить данные во временную таблицу и затем сделать выбор.Ваш вопрос немного неясен, хотя - не уверен, какова ваша конечная цель выбора.
DECLARE @Totalrecords Bigint =0;
SELECT
U.Id,
U.Username,
P.Id as ProfileId,
P.Firstname,
P.Lastname
into #temp
FROM [Dbo].[User] U
INNER JOIN [Profile] P
ON U.Id = P.Userid
WHERE AND U.[Status] <> 0
select @Totalrecords = COALESCE(COUNT(*),0) FROM #temp;
SELECT *
FROM #temp
ORDER BY id
OFFSET 0 ROWS
FETCH NEXT 20 ROWS ONLY