Search code examples
t-sqlauto-populating

Populate a T-SQL Table automatically


I need to input into a table a list of 126 Sites with 7 types of pitches. The script I have written is not right and I cannot figure out why.

What I would like to see is a column of Site_Skey 1, 1, 1, 1, 1, 1, 1 and a column of PitchType_Skey 1,2,3,4,5,6,7 then Site_Skey 2,2,2,2,2,2,2 and a column of PitchType_Skey 1,2,3,4,5,6,7 this need to be repeated 126 times.

Can you help?

Current Script:

    DECLARE @PitchType_Skey INT
    DECLARE @Site_Skey INT

    SET @PitchType_Skey = 1
    SET @Site_Skey = 1

    WHILE (@PitchType_Skey <= 882)
    WHILE (@Site_Skey <= 882)

   BEGIN
   INSERT INTO Capacity (PitchType_Skey, Site_Skey)
   SELECT (CASE WHEN @PitchType_Skey % 7 = 0 THEN 7 ELSE @PitchType_Skey % 7 END),
   (CASE WHEN @Site_Skey % 126 = 0 THEN 126 ELSE @Site_Skey % 126 END)
   SET @PitchType_Skey = @PitchType_Skey + 1
   SET @Site_Skey = @Site_Skey + 1
   END

Solution

  • much simpilar way of doing it....

    DECLARE @PitchType_Skey INT
    DECLARE @Site_Skey INT
    
    SET @PitchType_Skey = 1
    SET @Site_Skey = 1
    
    
    
    WHILE (@Site_Skey < 127)
    BEGIN
      IF @PitchType_Skey = 8
      BEGIN
       SET @PitchType_Skey = 1
       SET @Site_Skey = @Site_Skey + 1
      END
    
      IF (@Site_Skey < 127)
      BEGIN
         INSERT INTO dbo.Capacity (PitchType_Skey, Site_Skey)
         SELECT @PitchType_Skey, @Site_Skey
      END
    
      SET @PitchType_Skey = @PitchType_Skey + 1
    
    END