沒有數(shù)據(jù)怎么出統(tǒng)計(jì)表
最近工作中遇到幾個(gè)項(xiàng)目都是要中期dry run,這種情況往往都是數(shù)據(jù)不全,但是還要把所有的統(tǒng)計(jì)表格輸出出來,其中一個(gè)比較頭疼的問題就是有些PROC步在沒有數(shù)據(jù)的情況下跑出來會(huì)報(bào)錯(cuò)。報(bào)錯(cuò)肯定是不可取的,所以在這種情況下就要特殊處理一下。
我的處理方法比較簡(jiǎn)單,就是先判斷一下數(shù)據(jù)集里面是否有數(shù)據(jù),如果有數(shù)據(jù)就按正常的流程進(jìn)行處理,如果沒有數(shù)據(jù)就做一個(gè)dummy的數(shù)據(jù),先出一個(gè)空表,等以后有數(shù)據(jù)了再出一個(gè)正常的統(tǒng)計(jì)表。
此代碼把數(shù)據(jù)集temp中有多少條數(shù)據(jù)放到宏變量obs中:
proc sql noprint;
select count(*) into :obs
from temp;
quit;
接下來用if.else條件語句判斷&obs是否等于0,分別處理兩種情況:
%if &obs=0 %then %do;
dummy程序;
%end;
%else %do;
正常有數(shù)據(jù)時(shí)的程序;
%end;