Заполнить таблицу T-SQL автоматически

Мне нужно внести в таблицу список из 126 сайтов с 7 типами шагов. Написанный мною сценарий неверен, и я не могу понять, почему.

То, что я хотел бы видеть, это колонка Site_Skey 1, 1, 1, 1, 1, 1, 1 и столбец PitchType_Skey 1,2,3,4,5,6,7 тогда Site_Skey 2,2,2,2,2,2,2 и столбец PitchType_Skey 1,2,3,4,5,6,7 это нужно повторить 126 раз.

Вы можете помочь?

Текущий сценарий:

    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

1 ответ

Решение

Гораздо упрощенный способ сделать это....

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
Другие вопросы по тегам