私は、ユニークな組み合わせで申請が提出された人のリストと回数をまとめようとしています。
テーブル A 構造は次のように設定されます。
PERSON_ID CLAIM_ID 123456 A123C 123456 Z321C 123456 B123C 111111 A123C 111111 Z321C
テーブル B の構造は次のように設定されます。
PERSON_ID CLAIM_1 CLAIM_2 CLAIM_3 123456 A123C Z321C B123C 123456 A123C B123C 123456 B123C 111111 A123C Z321C 111111 A321C
私が生成する必要がある結果は次のようなものです。
PERSON_ID CLAIM_ID NUM_TIMES_CLAIMED 123456 A123C 2 123456 Z321C 1 123456 B123C 3 111111 A123C 1 111111 Z321C 2
開いているレコードセットでループを使用して MSAccess でこれを行うことができます。SAS レコードセットを開いてループ (マクロ) する方法を調査しようとしましたが、正しく実装する方法を整理できないようです。
何か案は?
編集
私が取らなければならないと思う手順は次のとおりです。
ステップ 1 - CLAIM_ID の 1 人の個別のリストを分離する
ステップ 2 - 各 CLAIM_ID について、25 の変数をスキャンして一致を見つける
ステップ 3 - 一致が見つかるたびにカウントする
ステップ 4 - 観察結果を保存する (PERSON_ID、CLAIM_ID、NUM_TIMES_CLAIMED)
VBA から SAS まで、表 B の 25 の変数のそれぞれをループしながら、1 人の個人の個別のクレーム リストを分離してループすることができないようです。
ある請求が別の請求で請求されているかどうかを評価するために使用するものは次のとおりです。これは、何らかの形で自動化する必要があると思います。
data LOCALPC.SEL_ASMT_DEL;
SET LOCALPC.FY2014_CC_FINAL;
ARRAY FSC{25} $ FSC1-FSC25;
DO I = 1 TO 25;
IF FIND (FSC{I},'A123A') THEN
DO N = I+11 TO 25;
IF FIND (FSC{J},'Z321A') THEN
OUTPUT;
END;
END;
RUN;