【问题标题】:SAS EG export to different test folder conditional statementSAS EG导出到不同的测试文件夹条件语句
【发布时间】:2022-12-05 19:48:49
【问题描述】:

我的代码将表格从 SAS 导出到文件夹中的 excel 文件。 如果我将变量测试设置为 1,我的目标是将导出文件夹更改为测试文件夹。 这是我的代码:

/*Delete .bak files*/
%macro xlsx_bak_delete(file, file_name) / des='Delete backup spreadsheets';
option mprint notes;
data _null_;
fname = 'todelete';
rc = filename(fname, "&file.&file_name..xlsx.bak");
rc = fdelete(fname);
rc = filename(fname);
run;
%mend xlsx_bak_delete;

/*Export*/
%macro ExportExcel(path,file_name,table_name);
proc export data=&table_name
    outfile="&path.&file_name..xlsx"
    dbms=xlsx
    replace;
    ;
run;
%xlsx_bak_delete(&export_path, &file_name)
%mend;

%LET test = 1

%IF test = 1 %then %do;
    /*TEST export path */
    %Let export_path = \\Bfd1\b00369\Afdeling\HS-OKO\Oko\Likviditet\Likviditetsstyring\LCR\Daglig LCR - Axiom\Test\;
%end;
%else %do;
    /*Export path*/
    %Let export_path = \\Bfd1\b00369\Afdeling\HS-OKO\Oko\Likviditet\Likviditetsstyring\LCR\Daglig LCR - Axiom\Test_prod\;
%end;

/*Datetiemstamp macro*/
%let fileTimeStamp = %sysfunc(date(), ddmmyyd10.)_%sysfunc(putc(%sysfunc(time(), b8601TM6.), $6.)) ;
%put &fileTimeStamp.;


%ExportExcel(&export_path,DAGLIGEKORREKTIONER_&fileTimeStamp.,QUERY_FOR_DAGLIGEKORREKTIONER);

问题是我的代码只导出到 test_prod 文件夹,如果 test = 0 或 1,则没有任何变化,这是为什么?

【问题讨论】:

    标签: sas


    【解决方案1】:

    您错误地引用了 macro variable。因此,它将始终在 %if 语句的 %else %do; 部分结束。
    您可以通过在其名称前面加上一个符号(&test)来引用它来使用该变量,这称为宏变量引用。

    %LET 语句后还缺少分号 ;

    %LET test = 1;
    
    %IF &test = 1 %then %do;
        /*TEST export path */
        %Let export_path = \Bfd100369AfdelingHS-OKOOkoLikviditetLikviditetsstyringLCRDaglig LCR - AxiomTest;
    %end;
    %else %do;
        /*Export path*/
        %Let export_path = \Bfd100369AfdelingHS-OKOOkoLikviditetLikviditetsstyringLCRDaglig LCR - AxiomTest_prod;
    %end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多