0

7 種類のピッチを持つ 126 のサイトのリストをテーブルに入力する必要があります。私が書いたスクリプトは正しくなく、その理由がわかりません。

私が見たいのは、1、1、1、1、1、1、1Site_Skeyの列と、PitchType_Skey1、2、3、4、5、6、7、2、2、2、2、2の列です。 Site_Skey,2,2 とPitchType_Skey1,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
4

1 に答える 1

0

それを行うためのはるかに単純な方法....

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
于 2013-02-12T12:45:40.547 に答える