You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于有数据的最后日期创建SAS日期宏变量

解决方案

方法1:汇总各表最大日期后筛选

  1. 先创建临时表,存储每张表的最大日期:
/* 创建临时表存储各表的最大日期 */
data max_dates;
    length table_name $32 max_date date9.;
    /* 替换成你的6张实际表名 */
    do table_name = 'TABLE1', 'TABLE2', 'TABLE3', 'TABLE4', 'TABLE5', 'TABLE6';
        /* 动态获取每张表的最大日期 */
        call execute(catx(' ',
            'proc sql noprint;',
            'select max(date_column) into :max_dt from ', table_name, ';',
            'quit;'
        ));
        max_date = &max_dt.;
        output;
        call symdel('max_dt');
    end;
run;
  1. 从临时表中筛选出属于上月的最大日期,赋值给宏变量:
/* 定义上月的日历区间:上月第一天到上月最后一天 */
%let first_last_month = %sysfunc(intnx(month,%sysfunc(today()),-1,b), date9.);
%let last_cal_last_month = %sysfunc(intnx(month,%sysfunc(today()),-1,e), date9.);

proc sql noprint;
    select max(max_date) into :last_actual_date format=date9.
    from max_dates
    where max_date between "&first_last_month."d and "&last_cal_last_month."d;
quit;

/* 转换成你需要的yymmn6.格式 */
%let last_actual_date_yymm = %sysfunc(putn(&last_actual_date., yymmn6.));

方法2:直接合并查询所有表的上月最大日期

如果6张表的日期字段名一致,可直接用union all合并查询:

proc sql noprint;
    select max(date_column) into :last_actual_date format=date9.
    from (
        select date_column from TABLE1
        union all
        select date_column from TABLE2
        union all
        select date_column from TABLE3
        union all
        select date_column from TABLE4
        union all
        select date_column from TABLE5
        union all
        select date_column from TABLE6
    ) as all_dates
    where date_column between 
        %sysfunc(intnx(month,%sysfunc(today()),-1,b), date9.)d 
        and 
        %sysfunc(intnx(month,%sysfunc(today()),-1,e), date9.)d;
quit;

%let last_actual_date_yymm = %sysfunc(putn(&last_actual_date., yymmn6.));

注意事项

  • 替换代码中的TABLE1-TABLE6为你的实际表名,date_column为表中存储日期戳的字段名。
  • 如果日期字段是字符型,需先用input(date_char, yymmdd10.)转换成SAS日期型再处理。

内容的提问来源于stack exchange,提问作者Scott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:22:11