我需要從sas數據集t_final_Summary生成報告。當我使用
proc報告或proc列表我不會得到行那些列
沒有他們的價值。因此,我創建了一個新的數據集,名稱爲Expiring
,其中的列與報告中的列相同。無法將傳遞給宏的參數作爲宏變量來解析
t_final_Summary具有名爲 - Sub_LOB,Group,Mat_Month和Comm_Incl的列。 我試圖將宏從該表中的值傳遞到另一個表
名爲Expiring,其中列名爲Sub_LOB,Group,Sum_of_Comm_Incl
不同Mat_month。我寫了下面的代碼:
%macro mat (sub,grp,mth,MCRO);
proc sql no print;
select case
when Sum(Comm_incl)=. then 0
else sum(Comm_Incl)
end format=16.2
into :&MCRO.
from t_final_Summary
where Sub_LOB= "&sub."
and Group="&grp."
and Mat_Month="&mth.";
quit;
%mend mat;
%mat(CRE Commercial, Carolina Group, _Expired, goid);
/*Now I want to check my macro variable goid using %put*/
%put &goid;
然後日誌總是告訴我,宏goid沒有解決。宏語句中是否有任何
錯誤。 我想不通。任何人都可以幫助我嗎?
你嘗試PRELOADFMT的建議? – Reeza
宏變量範圍 - 變量死亡不存在於宏之外。在這個問題的兩個方面肯定都是重複的。 – Reeza
可能重複[如何在宏中創建一個宏變量?](http://stackoverflow.com/questions/38361696/how-to-create-a-macro-variable-within-a-macro) – Reeza