FirstWeight, LastWeight в строке Псевдоним не будет работать на сервере sql. Вы можете изменить свой запрос следующим образом
SELECT Id AS ParticipantId, TeamId,
ISNULL((SELECT TOP(1) Weight FROM ParticipantData WHERE (ParticipantId = Participants.Id) AND (Weight <> 0) ORDER BY Date), 0) AS FirstWeight,
ISNULL((SELECT TOP(1) Weight FROM ParticipantData WHERE (ParticipantId = Participants.Id) AND (Weight <> 0) ORDER BY Date DESC), 0) AS LastWeight,
ISNULL((SELECT TOP(1) Weight FROM ParticipantData WHERE (ParticipantId = Participants.Id) AND (Weight <> 0) ORDER BY Date), 0)- ISNULL((SELECT TOP(1) Weight FROM ParticipantData WHERE (ParticipantId = Participants.Id) AND (Weight <> 0) ORDER BY Date DESC), 0) As WeightDiff // this doesn't work
FROM Participants
или использовать подзапрос на следующий уровень
select ParticipantId, TeamId,FirstWeight,LastWeight,
FirstWeight-LastWeight as WeightDiff from
(
SELECT Id AS ParticipantId, TeamId,
ISNULL((SELECT TOP(1) Weight FROM ParticipantData WHERE (ParticipantId = Participants.Id) AND (Weight <> 0) ORDER BY Date), 0) AS FirstWeight,
ISNULL((SELECT TOP(1) Weight FROM ParticipantData WHERE (ParticipantId = Participants.Id) AND (Weight <> 0) ORDER BY Date DESC), 0) AS LastWeight
FROM Participants
) as t