Essentially you would use the MS SQL Over Clause
Here is an sqlfiddle sample to show you how to do it in one query
Hope this helps.
CREATE TABLE Entry (Id INT PRIMARY KEY, GroupId INT, Weight INT);
CREATE TABLE [Group] (Id INT PRIMARY KEY, Label VARCHAR(10));
INSERT [Group] (Id, Label)
VALUES(1, 'test');
INSERT Entry (Id, GroupId, Weight)
VALUES(1,1, null)
INSERT Entry (Id, GroupId, Weight)
VALUES(2,1, null)
INSERT Entry (Id, GroupId, Weight)
VALUES(3,1, null)
UPDATE E
SET E.WEIGHT = o.WEIGHTIS
--SELECT *
FROM Entry E
INNER JOIN (
SELECT G.Id GID, E.Id EID,
ROW_NUMBER() OVER(PARTITION BY G.Id ORDER BY E.ID) WeightIs
FROM [Group] G
INNER JOIN Entry E
ON G.Id = E.GroupId
) o
ON o.GID = E.GroupID AND o.EID = E.Id