TSQL -> Prepare data for numerate logins exercise

Suppose that we have user logins record (id + login time) and want to numerate logins per user in Ascending mode. Following script creates sample data to be used later in solution.

USE [colombo]
GO

-- create table UserLogins

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[UserLogins]
(
  [userid] [int] NULL,
  [createdate] [datetime] NULL
) ON [PRIMARY];
GO

/*
  insert sample logins data into UserLogins table
*/
DECLARE @userid INT, @i INT, @dt DateTime

SET @userid = 400;
SET @i = 1;
SET @dt = '2007-11-05 12:38';

/* loop */
WHILE (@userid < 407 )
BEGIN

  WHILE (@i < 5)
  BEGIN
   INSERT INTO [dbo].[UserLogins] ([userid], [createdate])
   VALUES (@userid, @dt);

   IF ((@userid % 2 = 0) AND (DatePart(dd,@dt) % 2 = 0))
   BEGIN
    SET @dt = DateAdd(hh,6,@dt);

    INSERT INTO [dbo].[UserLogins] ([userid], [createdate])
    VALUES (@userid, @dt);
   END

   SET @dt = DateAdd(hh,12,@dt);
   SET @i = @i + 1;
   END

  SET @i = 1;
  SET @dt = '2007-11-05 12:38';
  SET @userid = @userid + 1;
END
GO


Table data will look like this :
useridcreatedate
4002007-11-05 12:38:00.000
4002007-11-06 00:38:00.000
4002007-11-06 06:38:00.000
4012007-11-05 12:38:00.000
4012007-11-06 00:38:00.000
....



sqlexamples.info