私は大きなサンプルの小さなテーブルに参加するためにいくつかのサンプルデータに対してハッシュジョインを使用しています。この例では、 '_1080544_27_08_2016'は大きな表で、 '_2015_2016_playerlistlookup'は小さい表です。私のコードは次のとおりです。ハッシュ結合は必要に応じて動作しません
data both(drop=rc);
declare Hash Plan
(dataset: 'work._2015_2016_playerlistlookup'); /* declare the name Plan for hash */
rc = plan.DefineKey ('Player_ID'); /* identify fields to use as keys */
rc = plan.DefineData ('Player_Full_Name',
'Player_First_Name', 'Player_Last_Name',
'Player_ID2'); /* identify fields to use as data */
rc = plan.DefineDone(); /* complete hash table definition */
do until (eof1) ; /* loop to read records from _1080544_27_08_2016 */
set _1080544_27_08_2016 end = eof1;
rc = plan.add(); /* add each record to the hash table */
end;
do until (eof2) ; /* loop to read records from _2015_2016_playerlistlookup */
set _2015_2016_playerlistlookup end = eof2;
call missing(Player_Full_Name,
Player_First_Name, Player_Last_Name); /* initialize the variable we intend to fill */
rc = plan.find(); /* lookup each plan_id in hash Plan */
output; /* write record to Both */
end;
stop;
run;
これは、小さいルックアップテーブルと同じ数の行を持つテーブルを生成しています。ルックアップテーブルの追加のフィールドを持つ大きなテーブルと同じサイズのテーブルが主キーを介して結合されている場合は、何を表示したいのですか。
大きいテーブルには繰り返し主キーがあります。つまり、主キーは一意ではありません(たとえば、行番号に基づいて)。
誰かが私がコードで修正する必要があることを教えてもらえますか?あなたの最初のDOループでも同様に、次に大きなものをあなたがそれを宣言するときに小さなもの、および - あなたのハッシュオブジェクトに両方のデータセットをロードしている
おかげ
こんにちは、お返事ありがとうございます。あなたが何を言っているのか分からないので、私に例のコードを教えてください。ありがとう。 – gdogg371
私はあなたがやろうとしていることを推測しました。もしそれがあなたの望むものでなければ、サンプルデータを投稿してください。 – user667489