ライブラリに2つのデータセットがあります。それぞれ&bbです。 私のコードは、特定の列変数を持つライブラリのデータセットを最初にチェックします。データセットに特定の変数がある場合は、それらが追加されます。 しかし、マクロを実行すると、ライブラリのデータセットがチェックされません。&はtest1に値を追加します。& test2これは変数に変数が含まれている場合、データセットをチェックする目的の機能を実行しません。エラー& ds &リストのためのシンボリックリファレンス&も& dsと&リストで構文エラーを示しています。ライブラリを検索して特定の変数を持つデータセットを追加する
は、あなたが任意の編集を提案するだろうことができます...以下
は私のコード..です
%macro CHK(lib1=,lib2=,varlist=);
%local
list
ds
;
proc sql noprint;
select distinct catx(".",libname,memname) into :list separated by " "
from dictionary.columns
where libname = %upcase ("&lib1") and %upcase(name) in("&varlist") ;
quit;
%put &list;
data test1;
set &list;
run;
proc sql noprint;
select distinct catx(".",libname,memname) into :ds separated by " "
from dictionary.columns
where libname = %upcase ("&lib2") and %upcase(name) in("&varlist") ;
quit;
%put &ds;
data test2;
set &ds;
run;
%mend CHK;
%CHK(lib1=aa,lib2=bb,varlist=%str('nam', 'DD', 'ht'));
をから期待される出力を含めるようにあなたの質問を編集してくださいあなたが投稿した例とあなたが試したコード。 – Quentin
質問を編集したので、今は本当に新しい質問だと思います。私はその質問を理解していません。以前のバージョンを復元し、新しい質問を追加することをお勧めします。 – Quentin
これも、元々あなたが質問したのとは異なる質問です。それは新しい質問でなければなりません。あなたは私が答えた元の質問を元に戻し、これを新しい質問にするべきです。つまり、WHERE文を次のように変更してみてください: 'libname =%upcase("&lib1 ")とupcase(name)in(%upcase(&varlist)); ' – Quentin