Если я правильно понимаю ваш запрос, это должно вам помочь
DECLARE @Table TABLE(
ID UNIQUEIDENTIFIER,
UserID INT,
[DayOfYear] INT,
Score INT
)
INSERT INTO @Table (ID,UserID,DayOfYear,Score) SELECT NEWID(), 1, 1, 10
INSERT INTO @Table (ID,UserID,DayOfYear,Score) SELECT NEWID(), 2, 1, 100
INSERT INTO @Table (ID,UserID,DayOfYear,Score) SELECT NEWID(), 2, 2, 1000
INSERT INTO @Table (ID,UserID,DayOfYear,Score) SELECT NEWID(), 1, 3, 10
DECLARE @inputDayOfYear INT
SELECT @inputDayOfYear = 3
/* THIS GOES INTO SP*/
INSERT INTO @Table (ID,UserID,DayOfYear,Score)
SELECT NEWID(),
UserID,
@inputDayOfYear,
Score
FROM @Table
WHERE [DayOfYear] = @inputDayOfYear - 1
AND UserID NOT IN (SELECT UserID FROM @Table WHERE [DayOfYear] = @inputDayOfYear)
/* THIS GOES INTO SP*/
SELECT * FROM @Table
/* SP TO CREATE */
CREATE PROCEDURE InsertValues(@inputDayOfYear AS INT)
AS
BEGIN
INSERT INTO @Table (ID,UserID,DayOfYear,Score)
SELECT NEWID(),
UserID,
@inputDayOfYear,
Score
FROM @Table
WHERE [DayOfYear] = @inputDayOfYear - 1
AND UserID NOT IN (SELECT UserID FROM @Table WHERE [DayOfYear] = @inputDayOfYear)
END
/* SP TO CREATE */