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

基于Dealscan数据集按企业计算累计贷款的SAS代码优化问询

针对Dealscan累计贷款计算的SAS代码优化及perm_id使用说明

一、适配多企业场景的代码修改

原代码未按企业维度分组,会将所有企业的贷款金额混算到同一日期下,完全不符合多企业分析需求。需在关联条件、查询字段、分组逻辑中加入企业标识(比如你提到的perm_id),修改后的代码如下:

proc sql;
create table loancumulative as
select 
    a.perm_id,
    a.startdate, 
    sum(b.tranche_amount) as cumulative_tranche_amount  /* 修改字段名,明确是累计值,避免与原字段混淆 */
from dealscan as a 
left join dealscan as b
    on a.perm_id = b.perm_id  /* 限定仅关联同一企业的记录 */
    and a.startdate >= b.startdate 
    and a.startdate < b.maturity_date  /* 这里替换为实际的到期日期字段名,原代码的enddate需确认是否对应maturity date */
group by a.perm_id, a.startdate
order by a.perm_id, a.startdate;
quit;

关键改动说明:

  • 关联条件新增a.perm_id = b.perm_id:确保仅对同一企业的贷款记录做累计,杜绝跨企业混算;
  • 查询字段加入a.perm_id:输出结果可明确区分不同企业的累计数据;
  • 分组条件新增a.perm_id:按「企业+日期」维度分组计算,每个企业的每日累计金额独立统计;
  • 字段名改为cumulative_tranche_amount:直观体现这是累计值,避免与原始单笔tranche金额混淆。

注意:务必确认数据集里的到期日期字段名(比如是否是maturity_date而非enddate),字段名不匹配会导致逻辑完全错误。

二、关于使用perm_id作为企业标识的问题

在Dealscan数据体系中,perm_id是Refinitiv分配的永久企业标识,相比companyid更适合作为企业唯一标识,原因如下:

  • companyid可能因企业更名、重组、数据录入误差等情况,出现多个值对应同一企业的问题;
  • perm_id稳定性极强,同一企业在不同时期、不同业务条目中的perm_id保持一致,能更精准地聚合同一企业的所有贷款记录。

需做的前置检查:

  • 确认数据集中perm_id无大量缺失值,若存在缺失,需结合companyid或其他企业信息补全;
  • 校验是否存在同一企业对应多个perm_id的异常,可通过简单代码排查:
proc freq data=dealscan;
tables companyid*perm_id / nocol norow;
run;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:04:56