如果我明白你的要求正确这应该帮助你
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 */
谢谢你的快速回复,但我想我忘了告诉你,用户ID为每DAYOFYEAR独特。 在你SP中如果UserOd = 1有DayOfYear = 3会发生什么?! – Babak 2009-11-26 07:45:27
好的,我为你解决了这个规范。看一看。 – 2009-11-26 08:00:31