0
私の問題は次のとおりです。私は、文字列をループしてSQLプロシージャ内でこれらの文字列を使用するマクロを持っています。問題は、これらの文字列が単純でコンパクトではなく、空白や引用符がある可能性があることです。SASマクロがテキスト部分をループしています
マクロ%のROZに文字列の入力は以下の通りです:
list1,list2
OID,in ("IDC","NPK")
OED,in ("EDC")
ZFP,in ("ZFP")
マクロルックスをこのように:
%macro roz(list1,list2);
%let n=%sysfunc(countw(&list1));
%do i=1 %to &n;
%let kanal = %scan(&list1,&i);
%let inlist = %scan(&list2,&i);
proc sql;
create table data_stor1_&kanal._file as select sum(pocet)
as pocet, Dch
from data_stor3_&kanal where Dch &inlist group by dat_poc;
quit;
%end;
%mend roz;
%roz(OID OED,'in ("IDC","NPK")' 'in ("EDC")');
私の問題は、私は私のマクロを作成する方法がわからないということですリスト2の部分を読み込み、書式(引用符、空白など)を保持します。文字列から数値に切り替えることで、プログラムの初期段階で問題を解決できますが、直接解決する方法があるのか不思議です。
私の2つの結果のSQLは、このように見えることになっている「を選択」は:
create table data_stor1_OID_file as select sum(pocet) as pocet, Dch
from data_stor3_OID where Dch in ("IDC","NPK") group by dat_poc;
create table data_stor1_OED_file as select sum(pocet) as pocet, Dch
from data_stor3_OED where Dch in ("EDC") group by dat_poc;
は、任意の提案をありがとう!
ありがとう、それは今動作します:-) –