使用最近的日期匹配连接两个数据集大家好。
我试图使用唯一标识符加上最接近的日期匹配在JMP中连接两个数据集。 我在这里有一些代码运行,并且非常接近我需要的但是我遇到麻烦,它保持多对一的匹配。 一个唯一标识符“EMP_ID_UID”可能(或不能)具有多个“交易日期”,多个“MED_SCAN_DTIMES”将匹配一个“交易日期”(因为交易日期是某人为他们的班次计时的日期,并且自然是繁忙的提供者将可能在12小时轮班期间服用多种药物)。 所以我需要的是在“EMP_ID_UID”上加入FIRST匹配,然后将“MED_SCAN_DTIME”与最近的“Transacation Date”匹配,并允许许多 “MED_SCAN_DTIME”匹配单个“交易日期”。现在,下面的代码与EMP_ID_UID匹配,它允许许多事务日期匹配一个EMP_ID_UID。 它也匹配最接近的日期但它只允许一对一的日期匹配。 它只保留最接近的匹配。 我可以对连接代码进行修改,以产生我需要的东西吗?任何想法或帮助将不胜感激!谢谢!
选择 *
来自“随机抽样试验”t1
LEFT OUTER JOIN“仅限相关单位组织代码的子集”t2
ON t1.EMP_ID_UID = t2.EMP_ID_UID AND t1.MED_SCAN_DTIME> t2.TransactionDate
在哪里t1.MED_SCAN_DTIME> t2.TransactionDate
GROUP BY t1.EMP_ID_UID,t1.MED_SCAN_DTIME
具有abs(t1.MED_SCAN_DTIME-t2.TransactionDate)= min(abs(t1.MED_SCAN_DTIME-t2.TransactionDate))
ORDER BY t1.EMP_ID_UID
;
放弃;
我用它来代码的跳跃点:
https://communities.sas.com/t5/SAS-Data-Management/Merging-two-tables-by-choosing-the-CLOSEST-dates/mp/191428#M3975
Re:使用最近的日期匹配连接两个数据集只是检查细节。
听起来你有:
一个时钟输入和输出时间表,所有提供者的ID都是唯一标识符
另一个具有ID和SCAN时间的表。
最后看起来你希望能够看到每个ID在每个时钟输入输出间隔期间发生了哪些(或多少)SCAN时间。
那很近吗?