である私は、リストから複数の値を受け入れ、私の格納されたプロセスに送るという名前_IDのパラメータをした、ことができますはSAS
_ID0 = 4
_ID1 = 1
_ID2 = 2
_ID3 = 3
_ID4 = 4
_ID_COUNT = 4
私が受けたよ、私はのように私の店の過程でそれらを受けるだろう、私はそれに4つの値(1,2,3,4)
を送ってきたと言うと、以下のようにそれらをフィルタリング。
%let ID = "&_ID";
%let Count = "&_ID_COUNT";
%macro IDs;
%global _ID0;
/* If more than one ID value was selected then cycle through the values */
%if %eval(&_ID0 ge 2) %then %do;
%do i=1 %to &_ID0;
&&_ID&i
%end;
%end;
/* If only one ID value was selected */
%else &_ID
%mend;
****************************;
%macro filter;
%if &Count ne "0" %then %do;
%stpbegin;
proc sql noprint;
create table users as
select *
from work.users
where id in(%IDs);
run;
%stpend;
%end;
%mend; %filter;
1以上のログにエラーがそこに私のコードですが、それが何をフィルタリングしていないではありません。ユーザテーブルは、IDの値1-10を持っている場合は、列のユーザーは、私が間違って何を知らない私は
user
id
1
2
3
4
をしたいだけ1,2,3,4-
user
id
1
2
3
4
5
6
7
8
9
10
フィルタの後に更新する必要がありますし、私はよりよいアプローチを見逃しましたか?
ID変数が数値か確認してください。 – Tom
私のレポートでは文字/文字列である – Azeem112
ログファイルにエラーはありませんが、Weboutファイルのいずれのフィルタデータも表示されません – Azeem112