8 ,parmfile =
template.Chapter8ParmFile
12 dcl hash &hashTable(ORDERED:
"A");
15 where upcase(hashTable) =
"%upcase(&hashTable)";
16 if Is_A_key then &hashTable..DefineKey(Column);
17 &hashTable..DefineData(Column);
19 &hashTable..DefineDone();
24 select distinct cats(
'%createHash(hashTable=' 28 into:createHashCalls separated by " "
29 from template.Chapter8ParmFile;
30 select distinct cats("h_pointer="
35 into:calcHash separated by ";"
36 from template.Chapter8ParmFile;
37 select distinct cats(hashTable
42 into:outputHash separated by ";"
43 from template.Chapter8ParmFile;
52 dcl hash players(dataset:"dw.players(rename=(Player_ID=Batter_ID))"
54 players.defineKey("Batter_ID");
55 players.defineData("Batter_ID","Team_SK","Last_Name","First_Name"
56 ,"Start_Date","End_Date");
58 dcl hash teams(dataset:"dw.teams");
59 teams.defineKey("Team_SK");
60 teams.defineData("Team_Name");
62 dcl hash games(dataset:"dw.games");
63 games.defineKey("Game_SK");
64 games.defineData("Date","Month","DayOfWeek");
71 if 0 then set dw.players(rename=(Player_ID=Batter_ID))
74 format PAs AtBats Hits comma6. BA OBP SLG OPS 5.3;
78 set dw.AtBats end = lr;
79 call missing(Team_SK,Last_Name,First_Name,Team_Name,Date,Month,DayOfWeek);
81 players_rc = players.find();
82 do while(players_rc = 0);
83 if (Start_Date le Date le End_Date) then leave;
84 players_rc = players.find_next();
87 then call missing(Team_SK,First_Name,Last_Name);
94 call missing(PAs,AtBats,Hits,_Bases,_Reached_Base);
95 rc = h_pointer.find();
100 _Reached_Base + Is_An_OnBase;
101 BA = divide(Hits,AtBats);
102 OBP = divide(_Reached_Base,PAs);
103 SLG = divide(_Bases,AtBats);