7 retain Team_SK Team1_SK Team2_SK .;
10 declare hash team1(dataset:
"bizarro.teams(rename=(Team_SK=Team1_SK))",multidata:
"y");
11 rc = team1.defineKey(
"League_SK");
12 rc = team1.defineData(
"League_SK",
"Team1_SK");
13 rc = team1.defineDone();
15 declare hash team2(dataset:
"bizarro.teams(rename=(Team_SK=Team2_SK))",multidata:
"y");
16 rc = team2.defineKey(
"League_SK");
17 rc = team2.defineData(
"League_SK",
"Team2_SK");
18 rc = team2.defineDone();
20 declare hash matchUps(multidata:
"y");
21 rc = matchUps.defineKey(
"League_SK");
22 rc = matchUps.defineData(
"League_SK",
"Team1_SK",
"Team2_SK");
23 rc = matchUps.defineDone();
26 rc = used.defineKey(
"League_SK",
"Team_SK");
27 rc = used.defineData(
"League_SK",
"Team_SK");
28 rc = used.defineDone();
30 declare hash schedule();
31 rc = schedule.defineKey(
"League_SK",
"Team1_SK",
"Team2_SK");
32 rc = schedule.defineData(
"League_SK",
"Team1_SK",
"Team2_SK",
"Date",
"Home");
33 rc = schedule.defineDone();
35 do League_SK = 1 to 2;
36 Team1_rc = team1.find();
38 Team2_rc = team2.find();
40 if Team2_SK ne Team1_SK then
42 addrc = matchUps.add();
44 Team2_rc = team2.find_next();
46 Team1_rc = team1.find_next();
50 do League_SK = 1 to 2;
51 Date =
"&seasonStartDate"d - 3;
52 do Combo = 1 to &nWeeksSeason;
53 if mod(combo,2) = 1 then Date + 3;
56 matchUps_rc = matchUps.find();
57 do while(matchUps_rc = 0 and games lt &nTeamsPerLeague/2);
58 if used.check(key:League_SK,key:Team1_SK) ne 0
59 and used.check(key:League_SK,key:Team2_SK) ne 0
62 Home = ceil(uniform(&seed4)*2);
63 if schedule.add() = 0 then
66 rc = used.add(Key:League_SK,Key:Team1_SK,Data:League_SK,Data:Team1_SK);
67 rc = used.add(Key:League_SK,Key:Team2_SK,Data:League_SK,Data:Team1_SK);
70 matchUps_rc = matchUps.find_next();
75 schedule.output(dataset:
"Games");
79 proc sort data = games out = games;
84 if 0 then
set template.games;
85 drop Team1_SK Team2_SK Home D;
86 format Time Timeampm8.;
91 array _homeaway team1_sk team2_sk;
92 Home_SK = _homeaway(Home);
93 Away_SK = _homeaway(3-Home);
97 DayOfWeek = weekday(Date);
98 if DayOfWeek = 5 then Time =
"16:00"t;
99 else if DayOfWeek = 1 then Time =
"13:00"t;
100 else time =
"19:00"t;
101 Game_SK = md5(catx(
":",League_SK,Away_SK,Home_SK,Date,Time));
105 D + 7*&nWeeksSeason/2;
106 Home_SK = _homeaway(3-Home);
107 Away_SK = _homeaway(Home);
111 DayOfWeek = weekday(Date);
112 Game_SK = md5(catx(
":",League_SK,Away_SK,Home_SK,Date,Time));