8 dcl hash players(dataset:
"dw.players(rename=(Player_ID=Batter_ID))" 10 players.defineKey(
"Batter_ID");
11 players.defineData(
"Batter_ID",
"Team_SK",
"Last_Name",
"First_Name" 12 ,
"Start_Date",
"End_Date");
14 dcl hash teams(dataset:
"dw.teams");
15 teams.defineKey(
"Team_SK");
16 teams.defineData(
"Team_Name");
18 dcl hash games(dataset:
"dw.games");
19 games.defineKey(
"Game_SK");
20 games.defineData(
"Date",
"Month",
"DayOfWeek");
24 dcl hash byPlayer(ordered:
"A");
25 byPlayer.defineKey(
"Last_Name",
"First_Name",
"Batter_ID");
26 byPlayer.defineData(
"Last_Name",
"First_Name",
"Batter_ID",
"PAs",
"AtBats",
"Hits" 27 ,
"_Bases",
"_Reached_Base",
"BA",
"OBP",
"SLG",
"OPS");
28 byPlayer.defineDone();
30 dcl hash byTeam(ordered:
"A");
31 byTeam.defineKey(
"Team_SK",
"Team_Name");
32 byTeam.defineData(
"Team_Name",
"Team_SK",
"PAs",
"AtBats",
"Hits" 33 ,
"_Bases",
"_Reached_Base",
"BA",
"OBP",
"SLG",
"OPS");
36 dcl hash byMonth(ordered:
"A");
37 byMonth.defineKey(
"Month");
38 byMonth.defineData(
"Month",
"PAs",
"AtBats",
"Hits" 39 ,
"_Bases",
"_Reached_Base",
"BA",
"OBP",
"SLG",
"OPS");
42 dcl hash byDayOfWeek(ordered:
"A");
43 byDayOfWeek.defineKey(
"DayOfWeek");
44 byDayOfWeek.defineData(
"DayOfWeek",
"PAs",
"AtBats",
"Hits" 45 ,
"_Bases",
"_Reached_Base",
"BA",
"OBP",
"SLG",
"OPS");
46 byDayOfWeek.defineDone();
48 dcl hash byPlayerMonth(ordered:
"A");
49 byPlayerMonth.defineKey(
"Last_Name",
"First_Name",
"Batter_ID",
"Month");
50 byPlayerMonth.defineData(
"Last_Name",
"First_Name",
"Batter_ID",
"Month" 51 ,
"PAs",
"AtBats",
"Hits",
"_Bases",
"_Reached_Base" 52 ,
"BA",
"OBP",
"SLG",
"OPS");
53 byPlayerMonth.defineDone();
55 if 0 then
set dw.players(rename=(Player_ID=Batter_ID))
58 format PAs AtBats Hits comma6. BA OBP SLG OPS 5.3;
62 set dw.AtBats end = lr;
63 call missing(Team_SK,Last_Name,First_Name,Team_Name,Date,Month,DayOfWeek);
65 players_rc = players.find();
66 do while(players_rc = 0);
67 if (Start_Date le Date le End_Date) then leave;
68 players_rc = players.find_next();
71 then call missing(Team_SK,First_Name,Last_Name);
79 h_pointer = byDayOfWeek;
81 h_pointer = byPlayerMonth;
84 byPlayer.output(dataset:
"byPlayer(drop=_:)");
85 byTeam.output(dataset:
"byTeam(drop=_:)");
86 byMonth.output(dataset:
"byMonth(drop=_:)");
87 byDayOfWeek.output(dataset:
"byDayOfWeek(drop=_:)");
88 byPlayerMonth.output(dataset:
"byPlayerMonth(drop=_:)");
91 call missing(PAs,AtBats,Hits,_Bases,_Reached_Base);
92 rc = h_pointer.find();
97 _Reached_Base + Is_An_OnBase;
98 BA = divide(Hits,AtBats);
99 OBP = divide(_Reached_Base,PAs);
100 SLG = divide(_Bases,AtBats);