投稿

ラベル(statement: merge)が付いた投稿を表示しています

NOTE: MERGEステートメントにBY値を繰り返すデータセットが複数あります。~SASログ入門 #3~

イメージ
データセットとデータセットの結合に使う みんな大好き mergeステートメントですが、n対n (多対多)の結合を行うことができません。正確には、n対n の結合をしようとすると、結合はできるのですが、SQLでの n対n の結合のように結合してくれません。 そんな、mergeステートメントで、n対n の結合をしてしまったとき、出てくるNOTEメッセージ「NOTE: MERGEステートメントにBY値を繰り返すデータセットが複数あります。」のご紹介です。 下記は、n対1 の結合をしようとして、間違えて n対n の結合をしてしまったサンプルコードです。 /* 顧客データ */ data CLIENT_MASTER ; infile cards dlm="," ; input LATEST_FLG CHANGED_DATE : date8. CLIENT_NO CLIENT_NAME : $20. BIRTH_DATE : date8. EMAIL_ADDRESS : $100. ; format CHANGED_DATE yymmddn8. BIRTH_DATE yymmddn8. ; cards ; 1,10DEC2015,001,JOHN,01JAN1980,TEST@TEST.com 0,12JUL2010,001,JOHN,01SEP1980,TEST@TEST.com 1,10DEC2015,002,Emily,01JAN1980,TESUTO@test.com 0,10DEC2015,002,Emily,01JAN1980, 0,10DEC2015,002,Emily,01JAN1981, 1,10DEC2014,003,Ann,12OCT1990,test@test.co.jp run ; /* 取引データ */ data TRANSACTION_PROCESS ; infile cards dlm="," ; input PROCESS_DT : datetime18. CLIENT_NO PRODUC...