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

如何在SAS PROC SQL中获取当前财年及上月的对应数据?

在SAS PROC SQL中获取当前财年上月的MTH与Month_Name

核心思路

  1. 用SAS日期函数计算上月的日历日期,提取对应月份数字和年份
  2. 根据财年规则生成目标财年标识(如FY2023)
  3. 在PROC SQL中筛选数据表中匹配财年和上月的记录

代码实现

情况1:财年为自然年(1月-12月)

若财年与日历年份完全一致,使用以下代码:

proc sql;
select FISCAL_YEAR, MTH, Month_Name
from 你的数据表名
where FISCAL_YEAR = 'FY' || put(year(intnx('month', today(), -1)), 4.)
  and MTH = month(intnx('month', today(), -1));
quit;

情况2:财年为跨年度(例如7月至次年6月)

若财年是每年7月到次年6月(如FY2023对应2022年7月-2023年6月),调整财年计算逻辑:

proc sql;
select FISCAL_YEAR, MTH, Month_Name
from 你的数据表名
where FISCAL_YEAR = 'FY' || put(
  ifn(month(intnx('month', today(), -1)) >=7, 
      year(intnx('month', today(), -1)) +1, 
      year(intnx('month', today(), -1))
  ), 4.)
  and MTH = month(intnx('month', today(), -1));
quit;

关键函数说明

  • today():获取系统当前日期
  • intnx('month', today(), -1):计算当前日期的上月日期(如当前是2023-08-01,返回2023-07-01)
  • month(日期):提取日期对应的月份数字(1-12)
  • year(日期):提取日期对应的年份
  • put(数值, 4.):将数值转为4位字符型,用于拼接财年标识FY
  • ifn(条件, 真值, 假值):条件判断函数,根据上月月份确定财年年份

自定义财年规则

如果财年起始月份不是7月,只需修改month(...) >=7中的数字即可(比如财年从4月开始,改为>=4)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:46:12