CREATE TABLE #Primes (CardId tinyint, PrimeFactor tinyint)

 

SET NOCOUNT ON

 

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (1,2)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (2,3)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (3,5)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (4,7)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (5,11)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (6,13)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (7,17)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (8,19)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (9,23)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (10,29)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (11,31)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (12,37)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (13,41)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (14,43)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (15,47)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (16,53)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (17,59)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (18,61)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (19,67)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (20,71)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (21,73)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (22,79)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (23,83)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (24,89)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (25,97)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (26,101)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (27,103)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (28,107)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (29,109)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (30,113)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (31,127)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (32,131)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (33,137)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (34,139)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (35,149)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (36,151)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (37,157)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (38,163)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (39,167)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (40,173)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (41,179)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (42,181)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (43,191)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (44,193)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (45,197)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (46,199)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (47,211)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (48,223)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (49,227)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (50,229)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (51,233)

INSERT INTO #Primes (CardId, PrimeFactor) VALUES (52,239)

GO

 

IF OBJECT_ID('Dim_Deck') IS NOT NULL DROP TABLE Dim_Deck

GO

 

CREATE TABLE Dim_Deck (

      CardId tinyint identity(1,1) primary key,

      PrimaryFactor tinyint unique NOT NULL,

      SuitTxt varchar(10) NOT NULL,

      SuitNum tinyint NOT NULL,

      RankTxt char(1) NOT NULL,

      RankNum tinyint NOT NULL,

      CardTxt char(2) NOT NULL

)

GO

 

DECLARE @CardId tinyint; SET @CardId = 1

DECLARE @SuitCntr tinyint; SET @SuitCntr = 1

WHILE @SuitCntr <= 4

BEGIN

      DECLARE @SuitTxt varchar(10)

      IF @SuitCntr = 1 SET @SuitTxt = 'Clubs'

      ELSE IF @SuitCntr = 2 SET @SuitTxt = 'Diamonds'

      ELSE IF @SuitCntr = 3 SET @SuitTxt = 'Hearts'

      ELSE IF @SuitCntr = 4 SET @SuitTxt = 'Spades'

      ELSE SET @SuitTxt = NULL

 

      DECLARE @RankCntr tinyint; SET @RankCntr = 1

      WHILE @RankCntr <= 13

      BEGIN

            DECLARE @RankTxt char(1)

            IF @RankCntr = 09 SET @RankTxt = 'T'

            ELSE IF @RankCntr = 10 SET @RankTxt = 'J'

            ELSE IF @RankCntr = 11 SET @RankTxt = 'Q'

            ELSE IF @RankCntr = 12 SET @RankTxt = 'K'

            ELSE IF @RankCntr = 13 SET @RankTxt = 'A'

            ELSE SET @RankTxt = LTRIM(STR(@RankCntr + 1))

 

            DECLARE @PrimeFactor tinyint

            SELECT @PrimeFactor = PrimeFactor FROM #Primes WHERE CardId = @CardId

 

            INSERT Dim_Deck VALUES (@PrimeFactor, @SuitTxt, @SuitCntr, @RankTxt,

                  @RankCntr, UPPER(@RankTxt) + LOWER(LEFT(@SuitTxt, 1)))

 

            SET @CardId = @CardId + 1

 

            SET @RankCntr = @RankCntr + 1

      END

 

      SET @SuitCntr = @SuitCntr + 1

END

 

 

DROP TABLE #Primes