SELECT @Count = COUNT(*), @MinTime = MIN([Clock]), @MaxTime = Max([Clock]) FROM [MyTable] WHERE [Fk] = @fk AND YEAR([Clock]) = YEAR(@clock) AND MONTH([Clock]) = MONTH(@clock) AND DAY([Clock]) = DAY(@clock) IF @Count < 2 BEGIN PRINT 'INSERT' END ELSE IF (@clock BETWEEN @MinTime AND @MaxTime) BEGIN --- DO NOTHING END ELSE BEGIN UPDATE [MyTable] SET .... FROM [MyTable] INNER JOIN (SELECT TOP 1 [PK] FROM [MyTable] WHERE [FK] = @fk AND [Clock] = CASE WHEN @clock < @MinTime THEN @MinTime ELSE @MAxTime END ORDER BY [Fk]) Tbl2 ON [MyTable].[Fk] = [Tbl2].[PK] END END